我有一個.NET C#應用程序,我試圖產生多個線程。 該應用程序用於性能測試,並且是一個簡單的控制檯應用程序。 產卵線程工作正常。在.Net/C#中,有沒有辦法等待或在所有工作線程完成處理時收到通知?
我在尋找的是當所有線程完成執行或在我的應用程序中等待所有線程完成時通知的正確機制。 在這一點上,我將打印出結果的摘要。
這裏是我的代碼片段看起來像:
String testName = "foo";
String fullTestName;
// Iterate and create threads
for (int index = 0; index < numberOfThreads; index++)
{
fullTestName = String.Format("{0}Thread{1}", testName, index);
Thread thread = new Thread(() => PerformanceTest(fullTestName, index, numberOfRows, testToRun));
thread.IsBackground = true;
thread.Name = fullTestName;
thread.Start();
}
void PerformanceTest(String testName, int iterationNumber, long numberOfRows)
{
// Insert a bunch of rows into DB
}
我看了使用RegisterWaitForSingleObject(),但無法弄清楚如何與我的場景中使用它。
可能的解決辦法:http://stackoverflow.com/questions/358721/be-notified-when-all-background-threadpool-threads-are-finished – Valentin