0

threadsキュー内のすべての処理がいつ完了したかを調べる方法を見つけようとしています..MessageBox処理が完了したら、「操作が完了しました」などのメッセージを表示したいと考えています。

これは、スレッドをキューに入れるために使用しているコードです。

Smart.STPStartInfo stpStartInfo = new Smart.STPStartInfo();
stpStartInfo.MaxWorkerThreads = Convert.ToInt32(numericUpDown5.Value);
stpStartInfo.MinWorkerThreads = 2;
_smartThreadPool = new Smart.SmartThreadPool(stpStartInfo);

foreach (string item in urlQueue)
{
    _smartThreadPool.QueueWorkItem(
        new Amib.Threading.Func<string, int, int, string, int>(checkURLSmart),
                                item, iia, 5000, kryptonTextBox1.Text);

    iia++;
}

すべてのスレッドがいつ作業を完了したかを知る方法はありますか?

4

1 に答える 1

0

SmartThreadPool で WaitAll または WaitAny を使用できます。

http://www.codeproject.com/Articles/7933/Smart-Thread-Pool#Feature4

于 2012-10-10T18:41:25.967 に答える