好吧,我應該已經知道答案,但...簡單的多線程問題
我想在平行於一個單獨的線程執行不同的任務,等待所有線程的執行繼續之前完成。我知道我可以使用ThreadPool.QueueUserWorkItem()
或BackgroundWorker
但不想使用(無特殊原因)。
那麼下面的代碼是否正確地在後臺線程上並行執行任務並等待它們完成處理?
Thread[] threads = new Thread[3];
for (int i = 0; i < threads.Length; i++)
{
threads[i] = new Thread(SomeActionDelegate);
threads[i].Start();
}
for (int i = 0; i < threads.Length; i++)
{
threads[i].Join();
}
我知道這個問題肯定已經被問了100次,所以感謝您的回答和耐心。
產生新的線程是昂貴的,所以你一般要避免短期運行的任務,這樣做。 – 2010-02-15 11:00:42
@布萊恩我完全同意,感謝提醒 – Kane 2010-02-15 11:09:37