вызов WebBrowser control из MTA приложения

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
i_van
Завсегдатай
Сообщения: 251
Зарегистрирован: 09 сен 2004, 23:58

вызов WebBrowser control из MTA приложения

Сообщение i_van »

Народ, помогите, пожалуйста, разрулить следующий конфликт.

Из главного потока Multi Thread Application (MTA) приложения AAA (unmanaged C++ code) надо вызвать WinForm (managed C#).
WinForm содержит WebBrowser control (видимо COM), который требует, чтобы процесс, из которого control создается, был STA (Single Thread Application).
Приложение компилируется, но при вызове WinForm и попытке создать WebBrowser control я получаю Exception:
ActiveX control 'GUID' cannot be instantiated because the current thread is not in a single-threaded apartment.

Можно ли что-нибудь придумать, чтобы главное приложение ААА оставалось MTA и WinForm использовал WebBrowser?

Заранее благодарен за любые идеи.
Аватара пользователя
pika
Частый Гость
Сообщения: 17
Зарегистрирован: 30 окт 2007, 09:26
Откуда: Dnipropetrovsk,Ukraine

Re: вызов WebBrowser control из MTA приложения

Сообщение pika »

i_van писал(а): Можно ли что-нибудь придумать, чтобы главное приложение ААА оставалось MTA и WinForm использовал WebBrowser?
а в чем причина, что главное приложение ААА должно остаться MTA?
i_van
Завсегдатай
Сообщения: 251
Зарегистрирован: 09 сен 2004, 23:58

Re: вызов WebBrowser control из MTA приложения

Сообщение i_van »

pika писал(а):а в чем причина, что главное приложение ААА должно остаться MTA?
За проявленный интерес спасибо.
Разные причины: макро запускать для больших вычислений, ответов ждать во время коммуникации, чтобы User Interface не подвешивать...

Но проблему я уже разрешил. Оказалось что STA means Single Thread Apartment, что не совсем тоже самое что Single Thread Application.
Аватара пользователя
pika
Частый Гость
Сообщения: 17
Зарегистрирован: 30 окт 2007, 09:26
Откуда: Dnipropetrovsk,Ukraine

Re: вызов WebBrowser control из MTA приложения

Сообщение pika »

i_van писал(а): проблему я уже разрешил. Оказалось что STA means Single Thread Apartment, что не совсем тоже самое что Single Thread Application.
ааа, гуд :)
кстати, может, и не точно по вопросу, но для общего понимания:
"Apartments and Pumping in the CLR"
http://blogs.msdn.com/cbrumme/archive/2 ... 66219.aspx
i_van
Завсегдатай
Сообщения: 251
Зарегистрирован: 09 сен 2004, 23:58

Re: вызов WebBrowser control из MTA приложения

Сообщение i_van »

кстати, может, и не точно по вопросу, но для общего понимания:
"Apartments and Pumping in the CLR"
http://blogs.msdn.com/cbrumme/archive/2 ... 66219.aspx
thanks.
Ответить