0

我有一个由 TlbImp.exe 生成的互操作程序集,生成的类事件很多,性能非常重要。

但是有一个问题,事件似乎以这样的方式注册/取消注册/调用,即使是空的事件处理程序也被计算在内。给定一组1..N事件,当您将处理程序注册到事件 3 时,它看起来像这:

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

当有很多经常引发的事件时,这会产生很大的开销。

所以问题是,有没有更好的方法来处理 .NET 中的 COM 事件?任何工具或其他东西,或者我是否必须从头开始重写互操作程序集的事件代码?

4

2 回答 2

0

为什么不只允许 .NET 通过执行 Using 语句来构建互操作?

除非您明确设置它们,否则不应调用任何事件。

例子:

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

如您所见,上面的示例设置了许多事件。

于 2008-12-30T02:16:43.843 回答
0

通过使用自定义Advise/ Unadvisecallbakcs 解决。

于 2009-02-09T14:08:27.570 回答