Cara: Menggabungkan Kueri LINQ Paralel dan Berurutan

Contoh ini menunjukkan cara menggunakan metode AsSequential untuk menginstruksikan PLINQ untuk memproses semua operator berikutnya dalam kueri secara berurutan. Meskipun pemrosesan berurutan sering kali lebih lambat daripada paralel, terkadang perlu untuk menghasilkan hasil yang benar.

Catatan

Contoh-contoh ini dimaksudkan untuk menunjukkan penggunaan dan mungkin tidak berjalan lebih cepat daripada kueri LINQ berurutan yang setara ke kueri Objek. Untuk informasi selengkapnya, lihat Memahami Percepatan di PLINQ.

Contoh

Contoh berikut menunjukkan satu skenario di mana AsSequential diperlukan, yaitu untuk mempertahankan urutan yang dibuat dalam klausa kueri sebelumnya.

// 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

Mengompilasi Kode

Untuk mengompilasi dan menjalankan kode ini, rekatkan ke proyek PLINQ Data Sample, tambahkan baris untuk memanggil metode dari Main, dan tekan F5.

Lihat juga