Nasıl yapılır: Paralel ve Sıralı LINQ Sorgularını Birleştirme

Bu örnek, PLINQ'a sorgudaki sonraki tüm işleçleri sırayla işlemesini bildirmek için yönteminin nasıl kullanılacağını AsSequential gösterir. Sıralı işleme genellikle paralelden daha yavaş olsa da, bazen doğru sonuçlar üretmek gerekir.

Not

Bu örnek kullanımı göstermek için tasarlanmıştır ve eşdeğer sıralı LINQ to Objects sorgusundan daha hızlı çalışmayabilir. Hızlandırma hakkında daha fazla bilgi için bkz . PLINQ'ta Hızlandırmayı Anlama.

Örnek

Aşağıdaki örnek, sorgunun önceki bir yan tümcesinde AsSequential oluşturulan sıralamayı korumak için gerekli olan bir senaryoyu gösterir.

// Paste into PLINQDataSample class.
static void SequentialDemo()
{
    var orders = GetOrders();
    var query = (from order in orders.AsParallel()
                 orderby order.OrderID
                 select new
                 {
                     order.OrderID,
                     OrderedOn = order.OrderDate,
                     ShippedOn = order.ShippedDate
                 })
                 .AsSequential().Take(5);
}
' Paste into PLINQDataSample class
Shared Sub SequentialDemo()

    Dim orders = GetOrders()
    Dim query = From ord In orders.AsParallel()
                Order By ord.OrderID
                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

Kod Derleniyor

Bu kodu derlemek ve çalıştırmak için PLINQ Veri Örneği projesine yapıştırın, yöntemini Mainçağırmak için bir satır ekleyin ve F5 tuşuna basın.

Ayrıca bkz.