用C ++发送COM事件 - 同步还是异步?

时间:2008-09-17 19:04:41

标签: c++ com activex atl

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

1 个答案:

答案 0 :(得分:4)

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

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