我正在使用消息队列(由Windows提供)来帮助程序中的多个线程进行通信。但是,我需要立即向程序中的所有线程发送消息。有没有这方面的功能?
答案 0 :(得分:1)
普通线程消息(没有窗口)在Windows中是不可靠的 - 在某些情况下,它们会被吞没而没有跟踪,并且没有您的线程有机会处理它们。因此,我希望每个线程都有一个顶级窗口用于消息目标,因为窗口目标消息总是由该窗口的窗口过程处理。如果您不需要该线程的可见窗口,则可以将其设置为仅消息窗口(父级为HWND_MESSAGE
)。
每个线程都有一个窗口后,您可以使用EnumWindows
或EnumChildWindows
枚举窗口,并将消息发送到您想要的窗口。或者,您可以保留一个线程消息窗口列表,并向每个窗口发送消息。没有简单的方法可以向进程中的所有线程发送消息。