Window 通知的信号事件

Signal event on Window's notification

我正在实施 Reactor 设计模式,使用单线程,使用 Windows 事件机制进行异步操作。

我在尝试结合我的反应器以支持 Windows Notifications(WM_CLOSE、WM_CREATE、WM_DEVICECHANGE...)以及现有的 Windows Events.

因此,我的问题是: 是否可以在特定 window 收到特定通知时发出事件信号?

提前致谢。

不,当接收到特定的 window 消息时,您不能使 Windows 向事件对象发出信号。您必须先在消息循环中捕获消息,然后根据需要自己向事件对象发出信号。

否则,重新编写消息循环以使用 MsgWaitForMultipleObjects() 以便它可以同时检查事件信号和待处理的 window 消息,然后您可以根据满足的条件进行操作等待每个循环迭代。请注意这个问题:

MsgWaitForMultipleObjects is a very tricky API

if you specify bWaitAll as true, you may find that your application doesn’t wake up when you expected it to

在这种情况下,您可以将 bWaitAll 设置为 false,一切正常。