0

TlbImp.exe によって生成された相互運用アセンブリがあります。生成されたクラスは頻繁にイベント処理され、パフォーマンスが非常に重要です。

しかし、問題があります。イベントは、空のイベントハンドラーでさえカウントされるような方法で登録/登録解除/呼び出されているようです.1..Nイベントのセットを考えると、イベント3にハンドラーを登録すると、次のようになりますこれ:

{dummy1, dummy2, eventHandler3, dummy4 ... dummyN}

非常に頻繁に発生するイベントが多数ある場合、これは大きなオーバーヘッドを生成します。

問題は、.NET で COM イベントを操作するより良い方法はないかということです。ツールか何か、または相互運用アセンブリのイベント コードを最初から書き直す必要がありますか?

4

2 に答える 2

0

カスタムAdvise/ Unadvisecallbakcsを使用して解決しました。

于 2009-02-09T14:08:27.570 に答える
0

Using ステートメントを実行して、.NET が相互運用機能を構築できるようにしないのはなぜですか?

明示的に設定しない限り、イベントは呼び出されません。

例:

http://code.msdn.microsoft.com/SEHE

ご覧のとおり、上記の例では多くのイベントが設定されています。

于 2008-12-30T02:16:43.843 に答える