Sdílet prostřednictvím


Postupy: Kombinování paralelních a sekvenčních LINQ dotazů

Tento příklad ukazuje použití AsSequential<TSource> Metoda PLINQ zpracovat všechny následné operátory dotazu postupně pokyn. I když je sekvenční zpracování obecně pomalejší než paralelní, někdy je nezbytné pro správné výsledky.

Poznámka k upozorněníUpozornění

Tento příklad je určen k prokázání využití a může běžet rychleji než ekvivalentní sekvenční LINQ dotazu objektů.Další informace o Vančurovou Principy Vančurovou v PLINQ.

Příklad

Následující příklad ukazuje jeden scénář, ve kterém je požadováno AsSequential<TSource>, jmenovitě pro zachování pořadí, které bylo stanoveno v předchozí klauzuli dotazu.

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

Probíhá kompilace kódu

Pro zkompilování a spuštění tohoto kódu jej vložte do projektu PLINQ Data Sample, přidejte řádek s voláním do metody Main a stiskněte klávesu F5.

Viz také

Koncepty

Paralelní LINQ (PLINQ)

Historie změn

Datum

Poslední dokumenty

Důvod

Květen 2010

Byla přidána poznámka týkající se používání vs. Vančurovou.

Názory zákazníků