私はいくつかのC#スレッドを行っています。スレッドを開始してデータをスレッドに転送することに問題はありませんが、スレッドが終了するのを待つことに問題があります。
私のコードを以下に示します。スレッドが終了するのを待つために使用Join()
していますが、何らかの理由でコードが機能しません。
Join()
すべてのアクティブなスレッドを呼び出しても、メインスレッド(つまり、forループ)はブロックされません。
私が間違っていることについて何か考えはありますか?
List<Thread> calculationThreads = new List<Thread>();
foreach (string calculation in calculations)
{
if (calculationThreads.Count < 5)
{
Thread calculationThread = new Thread(DoCalculation);
calculationThreads.Add(calculationThread);
calculationThread.Start(threadData);
}
else
{
// Wait for the threads to complete
foreach (Thread calculationThread in calculationThreads)
{
calculationThread.Join();
}
}
}