如何有效地实现事件循环?

时间:2009-02-01 16:05:12

标签: c++ com performance

COM对象(服务器)将事件通知成功发送至 COM客户端

没有

  • ATL
  • MFC

如何有效地将主线程置于等待/休眠(无限制),直到 COM服务器通知 COM客户端特定的事件

1 个答案:

答案 0 :(得分:3)

使用事件对象。

主线程在初始化时调用CreateEvent()来创建自动重置事件对象。

主线程然后进入一个事件循环,在该循环中重复调用MsgWaitForMultipleObjects()。 (here是消息循环的一个示例。)

你通常需要检查窗口消息,即使主线程没有GUI。

在客户端线程(创建接收器对象的线程)中,在任何必要的状态更新之后,在接收方法中调用SetEvent()。这将唤醒主线程。

如果您还没有,请阅读thisthis