使用来自不同线程的posthreadmessage()

时间:2012-04-17 08:12:48

标签: c++ windows multithreading

我不太确定这是否是正确的方法(我是一个业余爱好者)。我想将消息发布到工作线程,该工作线程循环GetMessage()并根据消息执行某些操作。我知道我必须使用posthreadmessage()和该工作线程的句柄。

这是我的问题:

我可以使用

PostThreadMessage(idWorkerThread, WM_COMMAND, (WPARAM)0, (LPARAM)0))

来自多个不同的线程?据我所知,这可能会导致消息从不同的线程同时写入工作线程消息队列。这是一个问题还是没问题?基本上我想要一个N> 1线程间通信。

1 个答案:

答案 0 :(得分:1)

PostThreadMessage是线程安全的,所以你会没事的。这是一个很好的方式。另一个选择是让线程等待事件或条件变量,并具有将事件推送到具有适当同步的队列的功能。