我有两个线程以下列方式通信:线程 A 在消息队列中发布一条消息,线程 B 处理该消息。线程 A 必须等到线程 B 处理消息。
线程 A
…………
在消息队列中发布消息
WaitForSingleObject (hEvent)
使用消息处理后的信息
设置事件(hEvent)
…………线程 B
处理消息队列中的消息
设置事件(hEvent)
你看到上面的代码有什么问题吗?我需要在任何地方调用 ResetEvent() 吗? 线程 A 是否需要调用 SetEvent(),或者线程 A 应该只调用 WaitForSingleObject() 而线程 B 应该只调用 SetEvent()?
提前致谢
最佳答案
只要事件是 AutoReset 事件,您就不需要调用 ResetEvent
。此参数在 CreateEvent
中设置。我认为你的伪代码没问题。
关于c++ - 两个线程之间通过事件的一种方式通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388374/