多任务控制台应用程序上的 stackoverflow 异常
stackoverflow exception on multitasking console app
我有一个运行一些长算法的程序,所以我在很多任务中都使用它。
当 Job 方法在任务中工作时,我有另一种方法来检查是否所有任务都已完成,或者是否还有一些任务仍在工作。但是 JobChecker 方法给了我 Whosebug 异常。为什么会报错,我该如何解决?
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));
}
与其忙着等待,不如使用 Task.WaitAll
或 Task.WhenAll
等内置函数
我有一个运行一些长算法的程序,所以我在很多任务中都使用它。 当 Job 方法在任务中工作时,我有另一种方法来检查是否所有任务都已完成,或者是否还有一些任务仍在工作。但是 JobChecker 方法给了我 Whosebug 异常。为什么会报错,我该如何解决?
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));
}
与其忙着等待,不如使用 Task.WaitAll
或 Task.WhenAll