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.