C# 请解释一下

C# 请解释一下,c#,ienumerable,parallel-processing,plinq,C#,Ienumerable,Parallel Processing,Plinq,有人能给我解释一件事吗。据我所知,AsParallel()在自己的任务中执行。所以,如果查询返回大量数据,变量“d”在“foreach”开始执行Console.WriteLine时可能为空 var integerList = Enumerable.Range(1, 100); var d = from x in integerList.AsParallel() where x <= 25 select x; foreach (var v in d) { Console.WriteLine(

有人能给我解释一件事吗。据我所知,AsParallel()在自己的任务中执行。所以,如果查询返回大量数据,变量“d”在“foreach”开始执行Console.WriteLine时可能为空

var integerList = Enumerable.Range(1, 100);
var d = from x in integerList.AsParallel()
where x <= 25
select x;
foreach (var v in d)
{
Console.WriteLine(v);
}
var integerList=Enumerable.Range(1100);
var d=整数列表中的x

其中x
aspallel
是一个
PLINQ
功能。
PLINQ
自动并行本地
LINQ
查询
PLINQ
的优点是易于使用,因为它将工作分区和结果排序的负担卸到了框架上

要使用
PLINQ
,只需在输入序列上调用
aspallel()
,然后像往常一样继续
LINQ
查询


变量
d
在您的情况下不能为空,因为
PLINQ
。如果为空,则表示集合中没有满足条件
xno的元素。添加.aspallel()后,PLINQ将使用经典数据并行计算技术在所有可用处理器上透明地执行Where、OrderBy和Select。实际上,在foreach循环中“触摸”查询之前,根本不会执行该查询(PLINQ和LINQ一样使用不同的执行)。主线程将停止执行,直到像往常一样从查询执行返回