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

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);
}

最佳答案

AsParallelPLINQ功能。PLINQ自动并行化本地LINQ查询。 PLINQ的优点是易于使用,因为它将工作分区和结果整理的负担分担给框架。

要使用PLINQ,只需在输入序列上调用AsParallel(),然后照常继续LINQ查询。

您的情况下的d变量不能仅因为PLINQ而为空。如果为空,则表示集合中没有满足x <= 25条件的元素。

您可以阅读更多here

关于c# - 请说明AsParallel(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5886172/

10-10 12:59