Share via


Veri Paralelliği (Görev Paralel Kitaplığı)

Veri paralelliği , bir kaynak koleksiyon veya dizideki öğeler üzerinde aynı işlemin eşzamanlı olarak (paralel olarak) gerçekleştirildiği senaryoları ifade eder. Veri paralel işlemlerinde, birden çok iş parçacığının aynı anda farklı kesimlerde çalışabilmesi için kaynak koleksiyon bölümlenmiştir.

Görev Paralel Kitaplığı (TPL), sınıfı aracılığıyla System.Threading.Tasks.Parallel veri paralelliğini destekler. Bu sınıf, ve foreach döngülerinin (For ve For Each Visual Basic'te) yöntem tabanlı paralel uygulamalarını sağlar. Bir veya Parallel.ForEach döngüsü için Parallel.For döngü mantığını, sıralı döngü yazacağınız kadar yazarsınız. İş parçacıkları veya kuyruk iş öğeleri oluşturmanız gerekmez. Temel döngülerde kilit almanız gerekmez. TPL, tüm alt düzey işleri sizin için işler. ve Parallel.ForEachkullanımı Parallel.For hakkında ayrıntılı bilgi için Paralel Programlama için Desenler: .NET Framework 4 ile Paralel Desenleri Anlama ve Uygulama belgesini indirin. Aşağıdaki kod örneği basit foreach bir döngü ve paralel eşdeğerini gösterir.

Not

TPL'de temsilciler tanımlamak için bu belgede lambda ifadeleri kullanılır. C# veya Visual Basic'teki lambda ifadelerini bilmiyorsanız bkz . PLINQ ve TPL'de Lambda İfadeleri.

// Sequential version
foreach (var item in sourceCollection)
{
    Process(item);
}

// Parallel equivalent
Parallel.ForEach(sourceCollection, item => Process(item));
' Sequential version        
For Each item In sourceCollection
    Process(item)
Next

' Parallel equivalent
Parallel.ForEach(sourceCollection, Sub(item) Process(item))

Paralel döngü çalıştırıldığında, TPL döngünün aynı anda birden çok bölümde çalışabilmesi için veri kaynağını bölümler. Arka planda, Görev Zamanlayıcı görevi sistem kaynaklarına ve iş yüküne göre bölümler. Mümkün olduğunda, iş yükü dengesiz hale gelirse zamanlayıcı yeniden dağıtımları birden çok iş parçacığı ve işlemci arasında çalışır.

Not

Ayrıca kendi özel bölümleyicinizi veya zamanlayıcınızı da sağlayabilirsiniz. Daha fazla bilgi için bkz . PLINQ ve TPL için Özel Bölümleyiciler ve Görev Zamanlayıcıları.

Parallel.For Hem hem de Parallel.ForEach yöntemleri döngü yürütmeyi durdurmanıza veya kesmenize, diğer iş parçacıklarında döngünün durumunu izlemenize, iş parçacığı yerel durumunu korumanıza, iş parçacığı yerel nesnelerini sonlandırmanıza, eşzamanlılık derecesini denetlemenize ve benzeri işlemler gerçekleştirmenize olanak sağlayan çeşitli aşırı yüklemelere sahiptir. Bu işlevi etkinleştiren yardımcı türler , , ParallelOptions, ParallelLoopResultCancellationTokenve CancellationTokenSourcetürlerini içerirParallelLoopState.

Daha fazla bilgi için bkz . Paralel Programlama Desenleri: .NET Framework 4 ile Paralel Desenleri Anlama ve Uygulama.

Bildirim temelli veya sorgu benzeri söz dizimi içeren veri paralelliği PLINQ tarafından desteklenir. Daha fazla bilgi için bkz . Parallel LINQ (PLINQ).

Ünvan Açıklama
Nasıl yapılır: Basit bir Parallel.For Döngüsü Yazma Herhangi bir For dizi veya dizinlenebilir IEnumerable<T> kaynak koleksiyonu üzerinde döngü yazmayı açıklar.
Nasıl yapılır: Basit bir Parallel.ForEach Döngüsü Yazma Herhangi IEnumerable<T> bir ForEach kaynak koleksiyon üzerinde döngü yazmayı açıklar.
Nasıl yapılır: Parallel.For Döngüsü durdurma veya Kesme Tüm iş parçacıklarının eylemden haberdar olması için paralel döngünün nasıl durdurulacağını veya kesileceğini açıklar.
Nasıl yapılır: İş Parçacığı Yerel Değişkenleriyle bir Parallel.For Döngüsü Yazma Her iş parçacığının diğer iş parçacıklarına görünmeyen bir özel değişken koruduğu bir For döngünün nasıl yazıldığını ve döngü tamamlandığında tüm iş parçacıklarından sonuçların nasıl eşitleneceğini açıklar.
Nasıl yapılır: Bölüm Yerel Değişkenleriyle bir Parallel.ForEach Döngüsü Yazma Her iş parçacığının diğer iş parçacıklarına görünmeyen bir özel değişken koruduğu bir ForEach döngünün nasıl yazıldığını ve döngü tamamlandığında tüm iş parçacıklarından sonuçların nasıl eşitleneceğini açıklar.
Nasıl yapılır: Bir Parallel.For veya ForEach Döngüsünü İptal Etme Bir paralel döngünün bir kullanarak nasıl iptal edileceğini açıklar System.Threading.CancellationToken
Nasıl yapılır: Küçük Döngü Gövdelerini Hızlandırma Döngü gövdesi çok küçük olduğunda yürütmeyi hızlandırmanın bir yolunu açıklar.
Görev Paralel Kitaplığı (TPL) Görev Paralel Kitaplığı'na genel bir bakış sağlar.
Paralel Programlama .NET Framework'te Paralel Programlamayı tanıtır.

Ayrıca bkz.