Re[8]: Вызов событий COM из разных потоков
От: Мизантроп  
Дата: 10.11.09 14:34
Оценка:
Здравствуйте, silart, Вы писали:

S>Мезантроп, ну как же? У нас указатель получается в конструкторе (один поток), а используется в функции потока (другой поток). Вроде же разные апартменты? В этом месте я вас немного не понял. Поясните пожалуйста свою мысль.


Честно говоря, я даже не знаю, что ещё сказать Ну а отчего здесь что-то должно обрушиться-то? Попробуйте сформулировать прричину обрушения, как Вы её видите но не в терминах "один поток, другой поток", а более конкретно, типа, вот мы вызвали функцию, произошло то-то, из-за этого такой-то механизм или такой-то код возбудил исключение...или что Вы подразумеваете под обрушением? В интерфейсах никакой магии нет, всё вполне приземлённо, и работает только тот код, который имеется вналичии. Я же уже писал, интерфейс — только лишь адрес таблицы. Или можно сказать так, интерфейс == абстрактный класс. Вот Вы объявили переменную типа такого абстрактного класса, потом записали в неё адрес потомка этого класса, а затем начали из другого потока вызывать методы через эту переменную. Что здесь может "обрушиться" и главное кем?

Откровенно говоря, я сегодня сильно устал, и особо вникать мне не хочется, извините Я у Вас вижу маршалинг в GIT, а демаршалинг где? Иными словами, кто и как реализует IEnumConnections? Маршалировать ведь недостаточно, нужно ещё демаршалировать в том потоке, где интерфейс будет использоваться.
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.