私は最近、ATLのCThreadPoolクラスを発見しました。この発見で非常に満足していました。これは、タスクのいくつかのキューを処理するために複数のワーカースレッドを持つ同期化のセマンティクスを処理するきちんとした小さなクラスです。タスクは、いくつかの外部プロセスによってCThreadPoolオブジェクトに供給されます。CThreadPoolで作業が完了したときを知る方法?
クリーンで非常にきれいですが、すべてのタスクが遂に完了したかどうかを調べる方法はないようです。それを行う最善の方法は何ですか?
たとえば、10の重い計算タスクを実行してから別の処理を行う必要があるとします。私は仕事が完了したことを知るまで私は移動することができません。
私は10個のスレッドでCThreadPoolを作成し、タスクをキューに入れ、スレッドから外します。タスクが完了したら、どうすればわかりますか?
ボアズ