共用方式為


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。

請參閱

概念

平行 LINQ (PLINQ)

變更記錄

日期

記錄

原因

2010 年 5 月

加入有關使用方式和 加速的比較注意事項。

客戶回函。