0

メインアプリで動的にリンクするdllで実行されるスレッドがあります。スレッド ハンドルを知らなくても、.exe 内のすべてのスレッド (読み込まれた dll を含む) を待機する方法はありますか? Windows 7 x64、vc++ スレッドは、特定のファイルに対して何らかの処理を行う関数であり、何も返すことは想定されていません。スレッド完了の特定の段階で変更されるグローバル クラスで動作します。スレッド関数は他の関数を呼び出します。関数の最後の行が実行されるまで待ちたい。

4

2 に答える 2

2

私はこれを自分でやったことがありませんが、おそらくあなたはできるでしょう

  1. を使用してスナップショットを作成するCreateToolhelp32Snapshot
  2. Thread32First次に、およびを使用してスレッドを列挙しますThread32Next
  3. スレッド ID ごとOpenThreadに、ハンドルを取得するために使用します。SYNCHRONIZE 最後にできるように、スレッドを特権で開いていることを確認してください。
  4. すべてのスレッド ハンドルを に渡して、すべてのスレッドがWaitForMultipleObjects終了するのを待ちます。
于 2013-07-30T11:48:07.400 に答える