Что эквивалентно Thread.SetApartmentState в C ++? - PullRequest
5 голосов
/ 14 октября 2008

В C # есть метод SetApartmentState в классе Thread. Как мне сделать то же самое в C ++?

Ответы [ 2 ]

7 голосов
/ 14 октября 2008

Для неуправляемых процессов вы управляете моделью квартиры, используемой для потока, передавая соответствующие параметры в CoInitializeEx(). Ларри Остерман написал замечательное небольшое руководство по этим вопросам:

...
Когда поток вызывает CoInitializeEx (или CoInitialize), поток сообщает COM какой из двух типов квартир это готов к проведению. Чтобы указать, что нить должна жить в МТА, ты передать флаг COINIT_MULTITHREADED CoInitializeEx. Чтобы указать, что поток должен разместить STA, либо вызов CoInitialize или передать COINIT_APARTMENTTHREADED флаг для CoInitializeEx.
...

- http://blogs.msdn.com/larryosterman/archive/2004/04/28/122240.aspx

1 голос
/ 14 октября 2008

C ++ не имеет встроенной поддержки потоков. То, что вы ищете, зависит от того, как вы реализуете потоки в своем приложении. Win32? Pthreads? повышение :: темы? Какой бы API вы ни использовали, он будет определять ответ на ваш вопрос.

РЕДАКТИРОВАТЬ: похоже, это может иметь пример для вас: http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx

Похоже, что это относится к управляемому c ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...