我不太确定这是否是正确的方法(im爱好者)。我想将消息发布到循环GetMessage()的工作线程,并根据消息做些什么。我知道我必须使用posthreadmessage()与该工作线程的句柄。使用来自不同线程的posthreadmessage()
这里是我的问题:
我可以使用
PostThreadMessage(idWorkerThread, WM_COMMAND, (WPARAM)0, (LPARAM)0))
从多个不同的线程?我知道这可能会导致消息从不同线程同时写入工作线程消息队列。这是一个问题还是很好?基本上我想要一个N-> 1线程间通信。
只需添加Pete发布的内容,如果在Windows或任何其他多任务处理器上的OS调用都是线程安全的,则无需担心。根据定义,它们是。如果他们不是操作系统会很快炸毁,你永远不会看到你的桌面。唯一的例外是子系统中的晦涩之处,比如设置进程调试钩子。像PostThreadMessage这样的主流内核调用是100%线程安全的。 – 2012-04-17 11:55:28