Совместимость событий .NET / COM - PullRequest
0 голосов
/ 29 декабря 2008

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 09 февраля 2009

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

0 голосов
/ 30 декабря 2008

Почему бы просто не позволить .NET построить взаимодействие с помощью оператора Using?

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

Пример:

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

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

...