Здравствуйте, TK, Вы писали:
TK>Здравствуйте, DragonFire, Вы писали:
TK>>>GetIUnknownForObject вызывается из STA потока?
DF>>Да, но сборщик мусора работает всегда в отдельном потоке...
TK>Маловероятно, что сборщик мусора делает это в STA
В остальном при использовании MTA дополнительного маршаллинга COM указателей не требуется.
DF>>Тем более, как я уже говорил, вызов GetIUnknownForObject и сохранение ссылки ничего не дает — объект умирает когда вызывается финалайз... Через диспетчер задач просто видно что COM — объект завершается, если в финалайз брейкпойнт поставить...
TK>Значит вы как-то еще выгружаете объект... GetIUnknownForObject инкрементирует счетчик ссылок объекта и пока не вызван Release — сам он выгружаться не будет
Ну тогда, скорее всего, COM объект умирает, когда умирает поток... Хотя поидее потом не должен умирать пока не выполнится finalize... Сам я COM не чищу нигде.
Как я уже говорил — экземпляр класса (пример пара постов выше) просто создается как поле формы...