.NET / COM события совместимость
-
29-08-2019 - |
Вопрос
У меня есть сборка взаимосвязи, сгенерированную 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
Как вы можете видеть приведенный выше пример, устанавливает множество событий.