代码之家  ›  专栏  ›  技术社区  ›  Rob

在C++中COM事件是同步的还是异步的?

  •  0
  • Rob  · 技术社区  · 16 年前

    我有一个使用MS ATL库编写的ActiveX控件,我正在通过 pDispatch->Invoke(..., DISPATCH_METHOD) . 该控件将由.NET客户端使用,我的问题是-触发事件是同步调用还是异步调用?我担心的是,如果是同步的,处理事件的应用程序可能会导致性能问题,除非它立即返回。

    1 回复  |  直到 16 年前
        1
  •  4
  •   Rob Walker    16 年前

    从生成事件的组件的角度来看,它是同步的。控件的执行线程将调用接收程序代码,此时事情将失去控制。

    接收到事件的客户必须确保他们快速返回。如果他们需要做大量的工作,那么他们应该异步地安排这些工作。例如,通过发布Windows消息或使用单独的线程。