多任务控制台应用程序上的stackoverflow异常

时间:2015-07-15 23:11:32

标签: c# .net multitasking

我有一个运行一些长算法的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));
}

1 个答案:

答案 0 :(得分:2)

使用内置函数,例如Task.WaitAllTask.WhenAll

,而不是忙碌等待