HOW TO:結合平行和循序 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 月 |
加入有關使用方式和 加速的比較注意事項。 |
客戶回函。 |