Вопрос

У меня есть сборка взаимосвязи, сгенерированную Tlbimp.exe, сгенерированные классы в значительной степени оснащены, и производительность очень важна.

Но есть проблема, события, по -видимому, зарегистрированы/незарегистрированы/вызываются таким образом, что даже пустые обработчики событий учитываются. Учитывая набор из 1..n События, когда вы зарегистрируете обработчик на событие 3, выглядит так:

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

Который генерирует большие накладные расходы, когда есть много событий, которые очень часто поднимаются.

Итак, вопрос в том, есть ли лучший способ работать с Com Events в .NET? Любой инструмент или что -то в этом роде или мне нужно переписать код события сборки Interop с нуля?

Это было полезно?

Решение 2

Решено с помощью пользовательского Advise/Unadvise Callbakcs.

Другие советы

Почему бы просто не позволить .NET создать Interop, выполнив оператор с использованием?

Нельзя использовать события, если вы их явно не установите.

Пример:

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

Как вы можете видеть приведенный выше пример, устанавливает множество событий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top