5

C#SetApartmentStateでは classにメソッドがありThreadます。C++ で同じことを行うにはどうすればよいですか?

4

2 に答える 2

7

管理されていないプロセスの場合、適切なパラメーターをに渡すことにより、スレッドに使用されるアパートメントモデルを制御しますCoInitializeEx()。Larry Ostermanは、これらについてのすばらしい小さなガイドを作成しました。

...スレッドが(または )を
呼び出すと、スレッドはCOMに2つのアパートメントタイプのどちらをホストする準備ができているかを通知します。スレッドがMTAに存在する必要があることを示すには、フラグをに 渡します。スレッドがSTAをホストする必要があることを示すには 、フラグを 呼び出すか、に渡し ます。 ..。CoInitializeExCoInitializeCOINIT_MULTITHREADEDCoInitializeExCoInitializeCOINIT_APARTMENTTHREADEDCoInitializeEx

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

于 2008-10-14T04:43:51.403 に答える
1

C++にはスレッドサポートが組み込まれていません。探しているものは、アプリケーションにスレッドを実装する方法によって異なります。Win32?pthread?boost :: threads?使用しているAPIが、質問に対する答えを決定します。

編集:これはあなたのための例を持っているように見えます:http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx

マネージC++に適用されるようです。

于 2008-10-14T04:02:24.280 に答える