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.