我有一个运行一些长算法的probram,所以我在很多任务中工作。 在任务中工作的Job方法我有另一种方法来检查所有任务是否完成或者是否仍然有效。但JobChecker方法给了我stackoverflow异常。为什么它会出错,我该如何解决?
public void Main()
{
while ((line = sr.ReadLine()) != null)
{
string lineTemp = line;
taskList.Add(Task.Run(() => Job(lineTemp, last)));
}
JobChecker(taskList);
}
public void JobChecker(List<Task> taskList)
{
do
{
System.Threading.Thread.Sleep(1000);
}
while (taskList.Any(x => x.Status == TaskStatus.Running));
}
答案 0 :(得分:2)
使用内置函数,例如Task.WaitAll
或Task.WhenAll