メインアプリで動的にリンクするdllで実行されるスレッドがあります。スレッド ハンドルを知らなくても、.exe 内のすべてのスレッド (読み込まれた dll を含む) を待機する方法はありますか? Windows 7 x64、vc++ スレッドは、特定のファイルに対して何らかの処理を行う関数であり、何も返すことは想定されていません。スレッド完了の特定の段階で変更されるグローバル クラスで動作します。スレッド関数は他の関数を呼び出します。関数の最後の行が実行されるまで待ちたい。
1177 次
2 に答える
2
私はこれを自分でやったことがありませんが、おそらくあなたはできるでしょう
- を使用してスナップショットを作成する
CreateToolhelp32Snapshot
Thread32First
次に、およびを使用してスレッドを列挙しますThread32Next
- スレッド ID ごと
OpenThread
に、ハンドルを取得するために使用します。SYNCHRONIZE
最後にできるように、スレッドを特権で開いていることを確認してください。 - すべてのスレッド ハンドルを に渡して、すべてのスレッドが
WaitForMultipleObjects
終了するのを待ちます。
于 2013-07-30T11:48:07.400 に答える