2008-09-17 107 views
0

我有一個使用MS ATL庫編寫的ActiveX控件,我通過pDispatch->Invoke(..., DISPATCH_METHOD)開展活動。該控件將被一個.NET客戶端使用,我的問題是 - 這個事件是同步還是異步調用?我擔心的是,如果同步,處理事件的應用程序可能會導致性能問題,除非它立即返回。在C++中觸發COM事件 - 同步還是異步?

回答

4

從生成事件的組件的角度來看,它是同步的。控制的執行線程將調用接收器代碼,並且在那個點上事物不受控制。

接收事件的客戶必須確保他們快速返回。如果他們需要做大量的工作,那麼他們應該安排這個異步。例如通過發佈Windows消息或使用單獨的線程。