これが私がしなければならないことです - 1. ハンドル threadHandle を定義し、ハンドル h[20] の配列を定義します...ここで、配列の各エントリには値 threadHandle があります。
- 私のコードは 20 のスレッドを開きます。完了すると、各スレッドはメイン スレッドに通知する必要があり、すべてのスレッドが通知を受け取ると、メイン スレッドは何かをログ ファイルに記録する必要があります。
私は次のようなことをする予定です:
threadHandle と上で定義したハンドル h[20} の配列を定義します。
コードが 20 のスレッドを開いたら、次のことを行います -waitformultipleobjects(NULL,20,h,true,10000)
ここで、コードは h 配列内のすべてのハンドルが設定されるのを待ってから、待機を返します。しかし、h の値はすべて同じであるため、wait 関数はエラーを返します。これを回避する方法はありますか?私は基本的にすべてのスレッドが呼び出し元のスレッドに信号を送る必要があります... 20 個のスレッドのそれぞれに 20 個のハンドラーを定義することも良い考えではないようです。
代わりにこのようなことはできますか?-
threadHandle とハンドルの配列 h[20] を定義します。メイン スレッドにシグナルを返したスレッド数の変数カウントを維持します。
waitforsingleobject(threadHandle)
これが戻ったら、count をインクリメントし、count < 20 の場合は上記の wait ステートメントを繰り返します。count = 20 までそれを続けてから、ファイルに記録します。もちろん、その間にいずれかの待機がタイムアウトになった場合は、失敗をログ ファイルに記録します。
私はこれを試していますが、これを行うより良い方法があるかどうか疑問に思っていました。
ティア。アナンド