您的当前位置:首页【C#】61. 并行查询的异常处理 PLINQ Exception

【C#】61. 并行查询的异常处理 PLINQ Exception

2024-03-01 来源:乌哈旅游

本文主要是要说明PLINQ中如果发生了异常(除取消任务以外的异常),那么将会返回一个aggregateexception(因为所有并行查询中发生的异常都会被抛出),需要对其中的innerexception进行进一步处理。


首先来看普通Linq查询中发生的异常:由于是顺序执行查询,因此当碰到了对应的第一个异常时便自动捕获,也无须考虑线程的问题,因为是在同一个线程中。

IEnumerable<int> numbers = Enumerable.Range(-5, 10);

var query = from number in numbers select 100 / number;

try
{
foreach(var n in query)
 Console.WriteLine(n);
}
catch (DivideByZeroException)
{
Console.WriteLine("Divided by zero!");
}

Console.WriteLine("---");
Console.WriteLine("Sequential LINQ query processing");
Console.WriteLine();

因篇幅问题不能全部显示,请点此查看更多更全内容