2009-11-24 107 views
1

是否有任何API将消息发送到线程? 基本上我只有threadId可用,我想发送一个自定义消息到该线程。将消息发送到不同线程

+0

您使用的是什么线程模型? WinAPI的?并行线程? – Amber 2009-11-24 10:02:15

+0

我正在使用Windows API。 – anand 2009-11-24 10:09:04

回答

5

PostThreadMessage。虽然不是很可靠。

有关原因的详细信息,请参阅旧新新博客herehere。基本上模态消息循环会让整个想法变得混乱。由于发布到线程的消息没有窗口句柄,因此调用DispatchMessage将丢弃该消息。任何你直接或间接运行的模态循环都会调用DispatchMessage,所以这个策略的很大一部分时间会失败,并且你的消息会消失在以太网中。

+1

这两篇文章中最重要的句子是:“如果您需要与显示UI的线程进行可靠的通信,则创建一个隐藏窗口并将消息发送或发布到该窗口。” – Thomas 2009-11-24 10:30:49

+0

当然,如果_all你有一​​个ThreadId_,那个建议也不起作用。 – MSalters 2009-11-26 15:01:47