我正在做一些 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();
}
}
}