gpt4 book ai didi

c++ - 如何向多个线程发送事件信号

转载 作者:可可西里 更新时间:2023-11-01 14:44:19 25 4
gpt4 key购买 nike

如何将事件发送到应用程序的多个运行线程?

例如:我的主线程想要向所有正在运行的线程发出应用程序将退出的信号。

我有点困惑,哪些可能性导致了一个简单可靠的解决方案:

  • condition_variable 和来自 boost
  • notify_all
  • CONDITION_VARIABLE 和来自 WinApi 的 WakeAllConditionsVariable
  • CEvent 来自 WinApi
  • 在线程上使用mutextry_lock
  • signalslots 来自 boost
  • 或者甚至是一个带有CriticalSection的全局变量来保护getter/setter
  • 在此处插入您的解决方案...

您能否为初学者指出正确的方向,并可能对我提供的上述可能性说几句。

添加:- 操作系统是 Windows XP

最佳答案

如果您想“向所有正在运行的线程发出应用程序将退出的信号”,手动重置甚至可以解决问题。

您需要让每个线程偶尔检查事件并在事件已发出信号时退出。

然后,您只需向事件发出信号,并在需要时等待线程完成。

如果您需要多次执行此操作会更加复杂,因为必须手动重置手动重置事件,并且您需要更多代码来确保在重置事件之前每个线程都收到通知以供后续使用通知,但考虑到你的问题,这会工作得很好。

关于c++ - 如何向多个线程发送事件信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com