如何:合并并行和顺序 LINQ 查询
更新:2010 年 5 月
此示例演示如何使用 AsSequential<TSource> 方法指示 PLINQ 按顺序处理查询中的所有后续运算符。 尽管顺序处理通常比并行处理慢,但有时必须使用顺序处理才能生成正确的结果。
警告 |
---|
本示例旨在演示用法,运行速度可能不如等效的顺序 LINQ to Objects 查询快。有关加速的更多信息,请参见了解 PLINQ 中的加速。 |
示例
下面的示例演示需要 AsSequential<TSource> 的一种情况,即保留在查询前面的子句中建立的排序。
' Paste into PLINQDataSample class
Shared Sub SequentialDemo()
Dim orders = GetOrders()
Dim query = From ord In orders.AsParallel()
Order By ord.CustomerID
Select New With
{
ord.OrderID,
ord.OrderDate,
ord.ShippedDate
}
Dim query2 = query.AsSequential().Take(5)
For Each item In query2
Console.WriteLine("{0}, {1}, {2}", item.OrderDate, item.OrderID, item.ShippedDate)
Next
End Sub
// Paste into PLINQDataSample class.
static void SequentialDemo()
{
var orders = GetOrders();
var query = (from ord in orders.AsParallel()
orderby ord.CustomerID
select new
{
Details = ord.OrderID,
Date = ord.OrderDate,
Shipped = ord.ShippedDate
}).
AsSequential().Take(5);
}
编译代码
若要编译和运行此代码,请将它粘贴到 PLINQ 数据示例项目中,添加一行以从 Main 调用该方法,然后按 F5。
请参见
概念
修订记录
日期 |
修订记录 |
原因 |
---|---|---|
2010 年 5 月 |
添加了有关用法与 加速的注释。 |
客户反馈 |