Здравствуйте, stump, Вы писали:
S>Здравствуйте, 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?
_>>Заранее благодарен за любые идеи.
S>У managed потока (System.Threading.Thread) есть свойство AppartmentState. Можно попробовать запустить код стартующий WinForm в отдельном потоке, выставив ему предварительно AppartmentState.STA. Правда, вероятно, в этом потоке придется самому организовывать цикл обработки оконных событий. Тут как-то рассказывали как это сделать. Поищи.
thanks