2008-09-17 21 views
0

私は、MS ATLライブラリを使用して書かれたActiveXコントロールを持っていて、私はpDispatch->Invoke(..., DISPATCH_METHOD)でイベントを発生させています。コントロールは、.NETクライアントによって使用され、私の質問はこれです - イベントの発生は同期または非同期呼び出しですか?私の懸念は、同期している場合、イベントを処理するアプリケーションがすぐに返さない限り、パフォーマンスの問題を引き起こす可能性があるということです。C++でCOMイベントを発生させる - 同期または非同期?

答えて

4

これは、イベントを生成するコンポーネントの観点から同期しています。コントロールの実行スレッドは、レシーバのコードを呼び出し、その時点では制御できません。

イベントを受信するクライアントは、それらがすばやく戻ることを確認する必要があります。大量の作業を行う必要がある場合は、非同期にスケジュールする必要があります。たとえば、Windowsメッセージを投稿するか、別のスレッドを使用します。

関連する問題