【问题标题】:stackoverflow exception on multitasking console app多任务控制台应用程序上的stackoverflow异常
【发布时间】:2015-10-05 05:23:52
【问题描述】:

我有一个运行一些长算法的问题,所以我在许多任务中都使用它。 虽然 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));
}

【问题讨论】:

  • 你能显示调用堆栈吗?
  • 什么是Job()方法和last变量?
  • @EZI Task.WaitAll 解决了我的问题,请让它回答,以便我接受。谢谢

标签: c# .net multitasking


【解决方案1】:

不要忙着等待,而是使用Task.WaitAllTask.WhenAll等内置函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 2017-04-10
    • 1970-01-01
    • 2012-05-15
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多