COM interop обрабатывает все события от COM объекта
От: Titov Andrew  
Дата: 19.10.10 21:56
Оценка:
Доброго времени суток!

Есть COM-объект, его использует моё приложение.
COM-объект имеет множество событий, мое приложение использует только несколько из них. Когда я создаю этот COM-объект, моё приложение сильно загружает процессор.

Я оттрейсил его профайлером и обнаружил что процессор загружается обработкой событий на которые я в своей программе не подписывался!

Получается .net обрабаытвает все события COM-объекта не зависимо от того, подписан я на них или нет?

Могу ли я както выключить такую обработку и обрабатывать только те которые нужны мне или можно ли как то перегенерить interop обёртку чтобы в ней небыло тех ненужных событий?
interop com события
Re: COM interop обрабатывает все события от COM объекта
От: Аноним  
Дата: 19.10.10 23:49
Оценка:
Здравствуйте, Titov Andrew, Вы писали:

TA>Доброго времени суток!


TA>Есть COM-объект, его использует моё приложение.

TA>COM-объект имеет множество событий, мое приложение использует только несколько из них. Когда я создаю этот COM-объект, моё приложение сильно загружает процессор.

TA>Я оттрейсил его профайлером и обнаружил что процессор загружается обработкой событий на которые я в своей программе не подписывался!


TA>Получается .net обрабаытвает все события COM-объекта не зависимо от того, подписан я на них или нет?


TA>Могу ли я както выключить такую обработку и обрабатывать только те которые нужны мне или можно ли как то перегенерить interop обёртку чтобы в ней небыло тех ненужных событий?


А кто писал этот объект и есть ли сорс? Если в констракторе самого объекта стоит подписка, то одно из двух — это надо для его правильной функциональности, или два — сам COM+ неправильно написан. не думаю, что все так просто. Скорей всего, объект делает много того, на что и подписываться в клиенте не надо, и это предусмотрено его кодом. Может я и неправ, это первое, что пришло на ум.
Re: COM interop обрабатывает все события от COM объекта
От: TK Лес кывт.рф
Дата: 20.10.10 04:32
Оценка:
Здравствуйте, Titov Andrew, Вы писали:

TA>Есть COM-объект, его использует моё приложение.

TA>COM-объект имеет множество событий, мое приложение использует только несколько из них. Когда я создаю этот COM-объект, моё приложение сильно загружает процессор.

TA>Я оттрейсил его профайлером и обнаружил что процессор загружается обработкой событий на которые я в своей программе не подписывался!

TA>Получается .net обрабаытвает все события COM-объекта не зависимо от того, подписан я на них или нет?

TA>Могу ли я както выключить такую обработку и обрабатывать только те которые нужны мне или можно ли как то перегенерить interop обёртку чтобы в ней небыло тех ненужных событий?


В COM нет "индивидуальных" событий — там есть callback интерфейсы. То, что эти интерфейсы на managed стороне выглядят как события это всего лишь дополнительный "сахар".

В любом случае, обработка пустых событий не должна занимать значительное время. Чем именно знимается .net код и как выглядит "событийный" интерфейс?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.