是否可以向所有线程发送消息?

时间:2011-01-22 18:40:22

标签: windows multithreading winapi

我正在使用消息队列(由Windows提供)来帮助程序中的多个线程进行通信。但是,我需要立即向程序中的所有线程发送消息。有没有这方面的功能?

1 个答案:

答案 0 :(得分:1)

普通线程消息(没有窗口)在Windows中是不可靠的 - 在某些情况下,它们会被吞没而没有跟踪,并且没有您的线程有机会处理它们。因此,我希望每个线程都有一个顶级窗口用于消息目标,因为窗口目标消息总是由该窗口的窗口过程处理。如果您不需要该线程的可见窗口,则可以将其设置为仅消息窗口(父级为HWND_MESSAGE)。

每个线程都有一个窗口后,您可以使用EnumWindowsEnumChildWindows枚举窗口,并将消息发送到您想要的窗口。或者,您可以保留一个线程消息窗口列表,并向每个窗口发送消息。没有简单的方法可以向进程中的所有线程发送消息。

相关问题