複数のスレッドを生成しようとしている .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() の使用を検討しましたが、シナリオでの使用方法がわかりませんでした。