1

を使用してNTスレッドプールにスレーブ化した一連のタスクがありますQueueUserWorkItem。WMI内のデータにアクセスするには、これらの個別のスレッドからCOMを呼び出す必要があります。ただし、正しい呼び出しを行うCoInitializeEx必要があるかどうかはわかりません。

基本的に、CoInitializeExドキュメントには、呼び出しはスレッドごとに1回行う必要があると記載されています。しかし、私はこれらのスレッドを所有していません—NTは所有しています。それらがいつ作成または破壊されるか、あるいはその性質のものかはわかりません。基本的に、スレッドルーチンの最初に::CoInitializeEx()(with )を呼び出し、次にスレッドルーチンの最後に呼び出しますか?COINIT_MULTITHREADED::CoUninitialize()

4

1 に答える 1

1

あなたは呼び出すことができCoInitCoUninit複数のネストされた時間、それらはただバランスをとる必要があります。スレッドプロシージャの最初と最後でそれを行うという提案された解決策は合理的です。呼び出しをスキップする早期終了がないことを確認し、失敗した場合CoUninitは呼び出しないでください。CoUninitCoInit

于 2011-10-18T17:20:01.230 に答える