我有一个由 TlbImp.exe 生成的互操作程序集,生成的类事件很多,性能非常重要。
但是有一个问题,事件似乎以这样的方式注册/取消注册/调用,即使是空的事件处理程序也被计算在内。给定一组1..N事件,当您将处理程序注册到事件 3 时,它看起来像这:
{dummy1, dummy2, eventHandler3, dummy4 ... dummyN}
当有很多经常引发的事件时,这会产生很大的开销。
所以问题是,有没有更好的方法来处理 .NET 中的 COM 事件?任何工具或其他东西,或者我是否必须从头开始重写互操作程序集的事件代码?