void CApp::MainThread() {
CThreadPooler tp;
tp.StartThread(3); // 3個のスレッドを走らせる
smart_ptr<function_callback> fn;
fn.Add(function_callback_v::Create(TestThread));
// TestThreadを走らせる
for(int i=0;i<100;i++){
tp.Invoke(fn); // 100個の仕事をお願いする
}
while (tp.GetInvokeCount()) // 未処理の仕事の数を取得
Sleep(10);
// ⇒上の2行は、単にtp.wait(); と書いても同じ意味
// --- すべての仕事が終了すると、ここから抜ける
}
|