我不太确定这是否是正确的方法(我是一个业余爱好者)。我想将消息发布到工作线程,该工作线程循环GetMessage()并根据消息执行某些操作。我知道我必须使用posthreadmessage()和该工作线程的句柄。
这是我的问题:
我可以使用
PostThreadMessage(idWorkerThread, WM_COMMAND, (WPARAM)0, (LPARAM)0))
来自多个不同的线程?据我所知,这可能会导致消息从不同的线程同时写入工作线程消息队列。这是一个问题还是没问题?基本上我想要一个N> 1线程间通信。
答案 0 :(得分:1)
PostThreadMessage是线程安全的,所以你会没事的。这是一个很好的方式。另一个选择是让线程等待事件或条件变量,并具有将事件推送到具有适当同步的队列的功能。