Parallel.ForEach Yöntem

Tanım

Yinelemelerin paralel olarak çalışabileceği bir foreach (For Each Visual Basic'te) işlemi yürütür.

Aşırı Yüklemeler

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable işlem üzerinde iş parçacığı yerel verileri ve 64 bit dizinlerle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(Partitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir Partitioner iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

64 bit dizinlerle ve yinelemelerin paralel olarak çalışabileceği bir iş parçacığı yerel verileriyle ( Visual Basic'te) bir foreachFor EachOrderablePartitioner<TSource> işlemi yürütür, döngü seçenekleri yapılandırılabilir ve döngünün durumu izlenebilir ve işlenebilir.

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable üzerinde iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(Partitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir Partitioner üzerinde iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir OrderablePartitioner<TSource> iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngü seçeneklerinin yapılandırılabildiği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(OrderablePartitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir OrderablePartitioner<TSource> (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngü seçeneklerinin yapılandırılabildiği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

Yinelemelerin foreachFor Each paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir 64 bit dizinlerle ( Visual Basic'te) bir IEnumerable işlemi yürütür.

ForEach<TSource>(Partitioner<TSource>, Action<TSource,ParallelLoopState>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(Partitioner<TSource>, Action<TSource>)

Yinelemelerin foreach paralel olarak çalışabileceği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState,Int64>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir 64 bit dizinler içeren bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(OrderablePartitioner<TSource>, Action<TSource,ParallelLoopState,Int64>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir OrderablePartitioner<TSource> (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(IEnumerable<TSource>, Action<TSource>)

Yinelemelerin foreach paralel olarak çalışabileceği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState>)

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Generic.IEnumerable<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : seq<'Source> * System.Threading.Tasks.ParallelOptions * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As IEnumerable(Of TSource), parallelOptions As ParallelOptions, localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

-veya-

bağımsız localInit değişkenidir null.

-veya-

bağımsız localFinally değişkenidir null.

CancellationToken bağımsız değişkenindeki parallelOptions iptal edilir.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Şu parametrelerle sağlanır: geçerli öğesi, döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek ve aynı iş parçacığında yürütülen yinelemeler arasında paylaşılabilecek bazı yerel durum.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, izleyen her gövde çağrısı, bir sonraki gövde çağırmasına geçirilen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son eylemi gerçekleştirmek için iş parçacığı başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırıldığı ve döngünün durumunun izlenip işlenebildiği bir işlem üzerinde iş parçacığı yerel verileri ve 64 bit dizinlerle bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, long, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Generic.IEnumerable<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,long,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : seq<'Source> * System.Threading.Tasks.ParallelOptions * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, int64, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As IEnumerable(Of TSource), parallelOptions As ParallelOptions, localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, Long, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

-veya-

bağımsız localInit değişkenidir null.

-veya-

bağımsız localFinally değişkenidir null.

CancellationToken bağımsız değişkenindeki parallelOptions iptal edilir.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Şu parametrelerle sağlanır: geçerli öğe, döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek, geçerli öğenin dizini ()Int64 ve aynı iş parçacığında yürütülen yinelemeler arasında paylaşılabilecek bazı yerel durum.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, izleyen her gövde çağrısı, bir sonraki gövde çağırmasına geçirilen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son eylemi gerçekleştirmek için iş parçacığı başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(Partitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırıldığı ve döngünün durumunun izlenip işlenebildiği bir Partitioner üzerinde iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::Partitioner<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Concurrent.Partitioner<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : System.Collections.Concurrent.Partitioner<'Source> * System.Threading.Tasks.ParallelOptions * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As Partitioner(Of TSource), parallelOptions As ParallelOptions, localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
Partitioner<TSource>

Özgün veri kaynağını içeren bölümleyici.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

source bağımsız değişkenidirnull.

-veya-

parallelOptions bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

-veya-

localInit bağımsız değişkenidirnull.

-veya-

localFinally bağımsız değişkenidirnull.

SupportsDynamicPartitions içindeki sourcePartitioner özelliği veya false bölümleyici bölümleri döndürürnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

CancellationToken bağımsız değişkenindeki parallelOptions iptal edilir.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Bu aşırı yükleme, statik aralık bölümlemesinden yararlanabilecek küçük döngü gövdelerine sahip senaryolar için sağlanır. Bölümleyiciler dinamik bölümleri desteklemelidir. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, sonraki her gövde çağrısı, bir sonraki gövde çağrısına geçirilen muhtemelen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son bir eylem gerçekleştirmek için görev başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

64 bit dizinler ve yinelemelerin foreach paralel olarak çalışabileceği bir üzerinde iş parçacığı yerel verileriyle bir OrderablePartitioner<TSource> (For Each Visual Basic'te) işlemi yürütür, döngü seçenekleri yapılandırılabilir ve döngünün durumu izlenebilir ve işlenebilir.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::OrderablePartitioner<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, long, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Concurrent.OrderablePartitioner<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,long,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : System.Collections.Concurrent.OrderablePartitioner<'Source> * System.Threading.Tasks.ParallelOptions * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, int64, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As OrderablePartitioner(Of TSource), parallelOptions As ParallelOptions, localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, Long, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
OrderablePartitioner<TSource>

Özgün veri kaynağını içeren sıralanabilir bölümleyici.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

source bağımsız değişkenidirnull.

-veya-

parallelOptions bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

-veya-

localInit veya localFinally bağımsız değişkenidirnull.

SupportsDynamicPartitions içindeki sourcePartitioner özelliği veya false bölümleyici bölümleri döndürürnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

CancellationToken bağımsız değişkenindeki parallelOptions iptal edilir.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, sonraki her gövde çağrısı, bir sonraki gövde çağrısına geçirilen muhtemelen değiştirilmiş bir durum değeri döndürür. Son olarak, her iş parçacığındaki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son bir eylem gerçekleştirmek için görev başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir üzerinde iş parçacığı yerel verileriyle bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Generic.IEnumerable<TSource> source, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : seq<'Source> * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As IEnumerable(Of TSource), localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

source bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

-veya-

localInit bağımsız değişkenidirnull.

-veya-

localFinally bağımsız değişkenidirnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Örnekler

Aşağıdaki örnekte bir yöntemin yerel durumla nasıl kullanılacağı ForEach gösterilmektedir:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

class ForEachWithThreadLocal
{
    // Demonstrated features:
    // 		Parallel.ForEach()
    //		Thread-local state
    // Expected results:
    //      This example sums up the elements of an int[] in parallel.
    //      Each thread maintains a local sum. When a thread is initialized, that local sum is set to 0.
    //      On every iteration the current element is added to the local sum.
    //      When a thread is done, it safely adds its local sum to the global sum.
    //      After the loop is complete, the global sum is printed out.
    // Documentation:
    //		http://msdn.microsoft.com/library/dd990270(VS.100).aspx
    static void Main()
    {
        // The sum of these elements is 40.
        int[] input = { 4, 1, 6, 2, 9, 5, 10, 3 };
        int sum = 0;

        try
        {
            Parallel.ForEach(
                    input,					        // source collection
                    () => 0,					        // thread local initializer
                    (n, loopState, localSum) =>		// body
                    {
                        localSum += n;
                        Console.WriteLine("Thread={0}, n={1}, localSum={2}", Thread.CurrentThread.ManagedThreadId, n, localSum);
                        return localSum;
                    },
                    (localSum) => Interlocked.Add(ref sum, localSum)					// thread local aggregator
                );

            Console.WriteLine("\nSum={0}", sum);
        }
        // No exception is expected in this example, but if one is still thrown from a task,
        // it will be wrapped in AggregateException and propagated to the main thread.
        catch (AggregateException e)
        {
            Console.WriteLine("Parallel.ForEach has thrown an exception. THIS WAS NOT EXPECTED.\n{0}", e);
        }
    }
}
Imports System.Threading
Imports System.Threading.Tasks

Module ForEachDemo

    ' Demonstrated features:
    '   Parallel.ForEach()
    '   Thread-local state
    ' Expected results:
    '   This example sums up the elements of an int[] in parallel.
    '   Each thread maintains a local sum. When a thread is initialized, that local sum is set to 0.
    '   On every iteration the current element is added to the local sum.
    '   When a thread is done, it safely adds its local sum to the global sum.
    '   After the loop is complete, the global sum is printed out.
    ' Documentation:
    '   http://msdn.microsoft.com/library/dd990270(VS.100).aspx
    Private Sub ForEachDemo()
        ' The sum of these elements is 40.
        Dim input As Integer() = {4, 1, 6, 2, 9, 5, _
        10, 3}
        Dim sum As Integer = 0

        Try
            ' source collection
            Parallel.ForEach(input,
                             Function()
                                 ' thread local initializer
                                 Return 0
                             End Function,
                             Function(n, loopState, localSum)
                                 ' body
                                 localSum += n
                                 Console.WriteLine("Thread={0}, n={1}, localSum={2}", Thread.CurrentThread.ManagedThreadId, n, localSum)
                                 Return localSum
                             End Function,
                             Sub(localSum)
                                 ' thread local aggregator
                                 Interlocked.Add(sum, localSum)
                             End Sub)

            Console.WriteLine(vbLf & "Sum={0}", sum)
        Catch e As AggregateException
            ' No exception is expected in this example, but if one is still thrown from a task,
            ' it will be wrapped in AggregateException and propagated to the main thread.
            Console.WriteLine("Parallel.ForEach has thrown an exception. THIS WAS NOT EXPECTED." & vbLf & "{0}", e)
        End Try
    End Sub


End Module

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Aşağıdaki parametrelerle sağlanır: geçerli öğesi, döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek ve aynı iş parçacığında yürütülen yinelemeler arasında paylaşılabilecek bazı yerel durum.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, sonraki her gövde çağrısı, bir sonraki gövde çağrısına geçirilen muhtemelen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son eylemi gerçekleştirmek için iş parçacığı başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalıştırılabildiği ve döngünün durumunun izlenip işlenebildiği bir üzerinde iş parçacığı yerel verileriyle bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, long, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Generic.IEnumerable<TSource> source, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,long,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : seq<'Source> * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, int64, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As IEnumerable(Of TSource), localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, Long, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

source bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

-veya-

localInit bağımsız değişkenidirnull.

-veya-

localFinally bağımsız değişkenidirnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Aşağıdaki parametrelerle sağlanır: geçerli öğesi, döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek, geçerli öğenin dizini ()Int64 ve aynı iş parçacığında yürütülen yinelemeler arasında paylaşılabilecek bazı yerel durum.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, sonraki her gövde çağrısı, bir sonraki gövde çağrısına geçirilen muhtemelen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son bir eylem gerçekleştirmek için görev başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(Partitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir üzerinde iş parçacığı yerel verileriyle bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::Partitioner<TSource> ^ source, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Concurrent.Partitioner<TSource> source, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : System.Collections.Concurrent.Partitioner<'Source> * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As Partitioner(Of TSource), localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
Partitioner<TSource>

Özgün veri kaynağını içeren bölümleyici.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

source bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

-veya-

localInit bağımsız değişkenidirnull.

-veya-

localFinally bağımsız değişkenidirnull.

SupportsDynamicPartitions içindeki sourcePartitioner özelliği veya false bölümleyici bölümleri döndürürnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Temsilci localInit , döngünün yürütülmesine katılan her iş parçacığı için bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, sonraki her gövde çağrısı, bir sonraki gövde çağrısına geçirilen muhtemelen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son bir eylem gerçekleştirmek için görev başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırıldığı ve döngünün durumunun izlenip işlenebildiği bir OrderablePartitioner<TSource> üzerinde iş parçacığı yerel verileriyle bir (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource, typename TLocal>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::OrderablePartitioner<TSource> ^ source, Func<TLocal> ^ localInit, Func<TSource, System::Threading::Tasks::ParallelLoopState ^, long, TLocal, TLocal> ^ body, Action<TLocal> ^ localFinally);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource,TLocal> (System.Collections.Concurrent.OrderablePartitioner<TSource> source, Func<TLocal> localInit, Func<TSource,System.Threading.Tasks.ParallelLoopState,long,TLocal,TLocal> body, Action<TLocal> localFinally);
static member ForEach : System.Collections.Concurrent.OrderablePartitioner<'Source> * Func<'Local> * Func<'Source, System.Threading.Tasks.ParallelLoopState, int64, 'Local, 'Local> * Action<'Local> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource, TLocal) (source As OrderablePartitioner(Of TSource), localInit As Func(Of TLocal), body As Func(Of TSource, ParallelLoopState, Long, TLocal, TLocal), localFinally As Action(Of TLocal)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

TLocal

İş parçacığı yerel verilerinin türü.

Parametreler

source
OrderablePartitioner<TSource>

Özgün veri kaynağını içeren sıralanabilir bölümleyici.

localInit
Func<TLocal>

Her görev için yerel verilerin ilk durumunu döndüren işlev temsilcisi.

body
Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>

Yineleme başına bir kez çağrılan temsilci.

localFinally
Action<TLocal>

Her görevin yerel durumu üzerinde son eylemi gerçekleştiren temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

source bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

-veya-

localInit bağımsız değişkenidirnull.

-veya-

localFinally bağımsız değişkenidirnull.

SupportsDynamicPartitions içindeki sourcePartitioner özelliği veya false bölümleyici bölümleri döndürürnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Döngünün localInit yürütülmesine katılan her görev için temsilci bir kez çağrılır ve bu görevlerin her biri için ilk yerel durumu döndürür. Bu ilk durumlar her görevdeki ilk body çağrılara geçirilir. Ardından, sonraki her gövde çağrısı, bir sonraki gövde çağrısına geçirilen muhtemelen değiştirilmiş bir durum değeri döndürür. Son olarak, her görevdeki son gövde çağrısı, temsilciye localFinally geçirilen bir durum değeri döndürür. Temsilci localFinally , her görevin yerel durumunda son bir eylem gerçekleştirmek için görev başına bir kez çağrılır. Bu temsilci birden çok görevde eşzamanlı olarak çağrılabilir; bu nedenle, paylaşılan değişkenlere erişimi eşitlemeniz gerekir.

Yöntemi Parallel.ForEach , mevcut görevler tamamlandıktan ve yeni görevlerle değiştirildiğinden yürütme süresi boyunca iş parçacıklarından daha fazla görev kullanabilir. Bu, temel alınan TaskScheduler nesneye döngüye hizmet eden iş parçacıklarını ekleme, değiştirme veya kaldırma şansı verir.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngü seçeneklerinin yapılandırılabildiği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Action<TSource> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Generic.IEnumerable<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Action<TSource> body);
static member ForEach : seq<'Source> * System.Threading.Tasks.ParallelOptions * Action<'Source> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As IEnumerable(Of TSource), parallelOptions As ParallelOptions, body As Action(Of TSource)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

body
Action<TSource>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

CancellationToken bağımsız değişkenindeki parallelOptions iptal edildi

source bağımsız değişkenidirnull.

-veya-

parallelOptions bağımsız değişkenidirnull.

-veya-

body bağımsız değişkenidirnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Geçerli öğeyle parametre olarak sağlanır.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Action<TSource, System::Threading::Tasks::ParallelLoopState ^> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Generic.IEnumerable<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Action<TSource,System.Threading.Tasks.ParallelLoopState> body);
static member ForEach : seq<'Source> * System.Threading.Tasks.ParallelOptions * Action<'Source, System.Threading.Tasks.ParallelLoopState> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As IEnumerable(Of TSource), parallelOptions As ParallelOptions, body As Action(Of TSource, ParallelLoopState)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

body
Action<TSource,ParallelLoopState>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

CancellationToken bağımsız değişkenindeki parallelOptions iptal edildi

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Şu parametrelerle sağlanır: geçerli öğe ve döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(OrderablePartitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir OrderablePartitioner<TSource> (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::OrderablePartitioner<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Action<TSource, System::Threading::Tasks::ParallelLoopState ^, long> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Concurrent.OrderablePartitioner<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Action<TSource,System.Threading.Tasks.ParallelLoopState,long> body);
static member ForEach : System.Collections.Concurrent.OrderablePartitioner<'Source> * System.Threading.Tasks.ParallelOptions * Action<'Source, System.Threading.Tasks.ParallelLoopState, int64> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As OrderablePartitioner(Of TSource), parallelOptions As ParallelOptions, body As Action(Of TSource, ParallelLoopState, Long)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

Parametreler

source
OrderablePartitioner<TSource>

Özgün veri kaynağını içeren sıralanabilir bölümleyici.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

body
Action<TSource,ParallelLoopState,Int64>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

CancellationToken bağımsız değişkenindeki parallelOptions iptal edildi

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

SupportsDynamicPartitions Sıralanabilir bölümleyicideki source özelliği döndürürfalse.

-veya-

KeysNormalized Sıralanabilir bölümleyicideki source özelliği döndürürfalse.

-veya-

Sıralanabilir bölümleyicideki herhangi bir yöntem döndürdüğünüzde sourcenulloluşan özel durum.

Belirtilen temsilcilerden birinden oluşan bir özel durum içermesi için atılan özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, Parallel.ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngü seçeneklerinin yapılandırılabildiği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::Partitioner<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Action<TSource> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Concurrent.Partitioner<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Action<TSource> body);
static member ForEach : System.Collections.Concurrent.Partitioner<'Source> * System.Threading.Tasks.ParallelOptions * Action<'Source> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As Partitioner(Of TSource), parallelOptions As ParallelOptions, body As Action(Of TSource)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

Parametreler

source
Partitioner<TSource>

Özgün veri kaynağını içeren bölümleyici.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

body
Action<TSource>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

CancellationToken bağımsız değişkenindeki parallelOptions iptal edilir.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

SupportsDynamicPartitions Bölümleyicideki source özelliği döndürürfalse.

-veya-

Bölümleyicideki herhangi bir yöntem döndürdüğünüzde sourcenulloluşan özel durum.

Belirtilen temsilcilerden birinden oluşan bir özel durum içermesi için atılan özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, Parallel.ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreachFor Each paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir 64 bit dizinlerle ( Visual Basic'te) bir IEnumerable işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Action<TSource, System::Threading::Tasks::ParallelLoopState ^, long> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Generic.IEnumerable<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Action<TSource,System.Threading.Tasks.ParallelLoopState,long> body);
static member ForEach : seq<'Source> * System.Threading.Tasks.ParallelOptions * Action<'Source, System.Threading.Tasks.ParallelLoopState, int64> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As IEnumerable(Of TSource), parallelOptions As ParallelOptions, body As Action(Of TSource, ParallelLoopState, Long)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

body
Action<TSource,ParallelLoopState,Int64>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

CancellationToken bağımsız değişkenindeki parallelOptions iptal edildi

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Şu parametrelerle sağlanır: geçerli öğe, döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek ve geçerli öğenin dizini (Int64).

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(Partitioner<TSource>, Action<TSource,ParallelLoopState>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::Partitioner<TSource> ^ source, Action<TSource, System::Threading::Tasks::ParallelLoopState ^> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Concurrent.Partitioner<TSource> source, Action<TSource,System.Threading.Tasks.ParallelLoopState> body);
static member ForEach : System.Collections.Concurrent.Partitioner<'Source> * Action<'Source, System.Threading.Tasks.ParallelLoopState> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As Partitioner(Of TSource), body As Action(Of TSource, ParallelLoopState)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

Parametreler

source
Partitioner<TSource>

Özgün veri kaynağını içeren bölümleyici.

body
Action<TSource,ParallelLoopState>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız body değişkenidir null.

SupportsDynamicPartitions Bölümleyicideki source özelliği döndürürfalse.

-veya-

Bölümleyicideki source bir yöntem döndürür null.

-veya-

Bölümleyicideki GetPartitions(Int32)source yöntemi doğru sayıda bölüm döndürmez.

Belirtilen temsilcilerden birinden oluşan bir özel durum içermesi için atılan özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, Parallel.ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(Partitioner<TSource>, Action<TSource>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::Partitioner<TSource> ^ source, Action<TSource> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Concurrent.Partitioner<TSource> source, Action<TSource> body);
static member ForEach : System.Collections.Concurrent.Partitioner<'Source> * Action<'Source> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As Partitioner(Of TSource), body As Action(Of TSource)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

Parametreler

source
Partitioner<TSource>

Özgün veri kaynağını içeren bölümleyici.

body
Action<TSource>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız body değişkenidir null.

SupportsDynamicPartitions Bölümleyicideki source özelliği döndürürfalse.

-veya-

Bölümleyicideki herhangi bir yöntem döndürdüğünüzde sourcenulloluşan özel durum.

-veya-

Bölümleyicideki GetPartitions(Int32)source yöntemi doğru sayıda bölüm döndürmez.

Belirtilen temsilcilerden birinden oluşan bir özel durum içermesi için atılan özel durum.

Örnekler

Aşağıdaki örnekte, ile Parallel.ForEachkullanmak üzere bir aralık bölümleyicinin nasıl uygulanacakları gösterilmektedir:

using System;
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

class RangePartitionerDemo 
{
        static void Main()
        {
            Stopwatch sw = null;

            long sum = 0;
            long SUMTOP = 10000000;

            // Try sequential for
            sw = Stopwatch.StartNew();
            for (long i = 0; i < SUMTOP; i++) sum += i;
            sw.Stop();
            Console.WriteLine("sequential for result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds);

            // Try parallel for -- this is slow!
            //sum = 0;
            //sw = Stopwatch.StartNew();
            //Parallel.For(0L, SUMTOP, (item) => Interlocked.Add(ref sum, item));
            //sw.Stop();
            //Console.WriteLine("parallel for  result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds);

            // Try parallel for with locals
            sum = 0;
            sw = Stopwatch.StartNew();
            Parallel.For(0L, SUMTOP, () => 0L, (item, state, prevLocal) => prevLocal + item, local => Interlocked.Add(ref sum, local));
            sw.Stop();
            Console.WriteLine("parallel for w/locals result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds);

            // Try range partitioner
            sum = 0;
            sw = Stopwatch.StartNew();
            Parallel.ForEach(Partitioner.Create(0L, SUMTOP), (range) =>
            {
                long local = 0;
                for (long i = range.Item1; i < range.Item2; i++) local += i;
                Interlocked.Add(ref sum, local);
            });
            sw.Stop();
            Console.WriteLine("range partitioner result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds);
        }
}
Imports System.Collections.Concurrent
Imports System.Threading
Imports System.Threading.Tasks

Module RangePartitionerDemo

    Sub Main()
        Dim sw As Stopwatch = Nothing

        Dim sum As Long = 0
        Dim SUMTOP As Long = 10000000

        ' Try sequential for
        sw = Stopwatch.StartNew()
        For i As Long = 0 To SUMTOP - 1
            sum += i
        Next
        sw.Stop()
        Console.WriteLine("sequential for result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds)

        ' Try parallel for with locals
        sum = 0
        sw = Stopwatch.StartNew()
        Parallel.For(0L, SUMTOP, Function() 0L, Function(item, state, prevLocal) prevLocal + item, Function(local) Interlocked.Add(sum, local))
        sw.Stop()
        Console.WriteLine("parallel for w/locals result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds)

        ' Try range partitioner
        sum = 0
        sw = Stopwatch.StartNew()
        Parallel.ForEach(Partitioner.Create(0L, SUMTOP),
                         Sub(range)
                             Dim local As Long = 0
                             For i As Long = range.Item1 To range.Item2 - 1
                                 local += i
                             Next
                             Interlocked.Add(sum, local)
                         End Sub)
        sw.Stop()
        Console.WriteLine("range partitioner result = {0}, time = {1} ms", sum, sw.ElapsedMilliseconds)
    End Sub

End Module

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, Parallel.ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState,Int64>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir 64 bit dizinler içeren bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, Action<TSource, System::Threading::Tasks::ParallelLoopState ^, long> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Generic.IEnumerable<TSource> source, Action<TSource,System.Threading.Tasks.ParallelLoopState,long> body);
static member ForEach : seq<'Source> * Action<'Source, System.Threading.Tasks.ParallelLoopState, int64> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As IEnumerable(Of TSource), body As Action(Of TSource, ParallelLoopState, Long)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

body
Action<TSource,ParallelLoopState,Int64>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız body değişkenidir null.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Şu parametrelerle sağlanır: geçerli öğe, döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek ve geçerli öğenin dizini (Int64).

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(OrderablePartitioner<TSource>, Action<TSource,ParallelLoopState,Int64>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir OrderablePartitioner<TSource> (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::OrderablePartitioner<TSource> ^ source, Action<TSource, System::Threading::Tasks::ParallelLoopState ^, long> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Concurrent.OrderablePartitioner<TSource> source, Action<TSource,System.Threading.Tasks.ParallelLoopState,long> body);
static member ForEach : System.Collections.Concurrent.OrderablePartitioner<'Source> * Action<'Source, System.Threading.Tasks.ParallelLoopState, int64> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As OrderablePartitioner(Of TSource), body As Action(Of TSource, ParallelLoopState, Long)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

Parametreler

source
OrderablePartitioner<TSource>

Özgün veri kaynağını içeren sıralanabilir bölümleyici.

body
Action<TSource,ParallelLoopState,Int64>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız body değişkenidir null.

SupportsDynamicPartitions Sıralanabilir bölümleyicideki source özelliği döndürürfalse.

-veya-

KeysNormalized Kaynak sıralanabilir bölümleyicideki özelliği döndürürfalse.

-veya-

Kaynak sıralanabilir bölümleyicideki tüm yöntemler döndürür null.

Belirtilen temsilcilerden birinden oluşan özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, Parallel.ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(IEnumerable<TSource>, Action<TSource>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği bir IEnumerable (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, Action<TSource> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Generic.IEnumerable<TSource> source, Action<TSource> body);
static member ForEach : seq<'Source> * Action<'Source> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As IEnumerable(Of TSource), body As Action(Of TSource)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

body
Action<TSource>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

bağımsız body değişkenidir null.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Örnekler

Aşağıdaki örnek, bir metin dosyasındaki ForEach<TSource>(IEnumerable<TSource>, Action<TSource>) ünlülerin ve boşluk olmayan karakterlerin sayısını saymak için yöntemini kullanır. Bu durumda, ParallelLoopResult yöntemi tarafından döndürülen değer yoksayılır. İşlemler paralel olarak çalışabileceğinden, sayaç değişkenlerini artırmanın atomik bir işlem olduğundan ve birden çok iş parçacığının sayaç değişkenlerine aynı anda erişmeye çalışmadığından emin olmanız gerektiğini unutmayın. Bu amaçla örnekte deyimi (C#'ta) ve SyncLock deyimi (Visual Basic'te) kullanılırlock.

using System;
using System.IO;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      Task<String> task = ReadCharacters(@".\CallOfTheWild.txt");
      String text = task.Result;
      
      int nVowels = 0;
      int nNonWhiteSpace = 0;
      Object obj = new Object();

      ParallelLoopResult result = Parallel.ForEach(text, 
                                                   (ch) => {
                                                      Char uCh = Char.ToUpper(ch);
                                                      if ("AEIOUY".IndexOf(uCh) >= 0) {
                                                         lock (obj) {
                                                            nVowels++;
                                                         }
                                                      }
                                                      if (! Char.IsWhiteSpace(uCh)) {
                                                         lock (obj) {
                                                            nNonWhiteSpace++;
                                                         }   
                                                      }
                                                   } );
      Console.WriteLine("Total characters:      {0,10:N0}", text.Length);
      Console.WriteLine("Total vowels:          {0,10:N0}", nVowels);
      Console.WriteLine("Total non-white-space:  {0,10:N0}", nNonWhiteSpace);
   }

   private static async Task<String> ReadCharacters(String fn)
   {
      String text;
      using (StreamReader sr = new StreamReader(fn)) {
         text = await sr.ReadToEndAsync();
      }
      return text;
   }
}
// The example displays output like the following:
//       Total characters:         198,548
//       Total vowels:              58,421
//       Total non-white-space:     159,461
Imports System.IO
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim task As Task(Of String) = ReadCharacters(".\CallOfTheWild.txt")
      Dim text As String = task.Result
      
      Dim nVowels As Integer = 0
      Dim nNonWhiteSpace As Integer = 0
      Dim obj As New Object()

      Dim result As ParallelLoopResult = Parallel.ForEach(text, 
                                                          Sub(ch)
                                                             Dim uCh As Char = Char.ToUpper(ch)
                                                             If "AEIOUY".IndexOf(uCh) >= 0 Then
                                                                SyncLock obj
                                                                   nVowels += 1
                                                                End SyncLock
                                                             End If
                                                             If Not Char.IsWhiteSpace(uCh) Then
                                                                SyncLock obj
                                                                   nNonWhiteSpace += 1
                                                                End SyncLock   
                                                             End If
                                                          End Sub)
      Console.WriteLine("Total characters:      {0,10:N0}", text.Length)
      Console.WriteLine("Total vowels:          {0,10:N0}", nVowels)
      Console.WriteLine("Total non-white space:  {0,10:N0}", nNonWhiteSpace)
   End Sub
   
   Private Async Function ReadCharacters(fn As String) As Task(Of String)
      Dim text As String
      Using sr As New StreamReader(fn)
         text = Await sr.ReadToEndAsync()
      End Using
      Return text
   End Function
End Module
' The output from the example resembles the following:
'       Total characters:         198,548
'       Total vowels:              58,421
'       Total non-white space:     159,461

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Geçerli öğeyle parametre olarak sağlanır.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği, döngü seçeneklerinin yapılandırılabildiği ve döngünün durumunun izlenip işlenebildiği bir Partitioner (For Each Visual Basic'te) işlemi yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Concurrent::Partitioner<TSource> ^ source, System::Threading::Tasks::ParallelOptions ^ parallelOptions, Action<TSource, System::Threading::Tasks::ParallelLoopState ^> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Concurrent.Partitioner<TSource> source, System.Threading.Tasks.ParallelOptions parallelOptions, Action<TSource,System.Threading.Tasks.ParallelLoopState> body);
static member ForEach : System.Collections.Concurrent.Partitioner<'Source> * System.Threading.Tasks.ParallelOptions * Action<'Source, System.Threading.Tasks.ParallelLoopState> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As Partitioner(Of TSource), parallelOptions As ParallelOptions, body As Action(Of TSource, ParallelLoopState)) As ParallelLoopResult

Tür Parametreleri

TSource

içindeki sourceöğelerin türü.

Parametreler

source
Partitioner<TSource>

Özgün veri kaynağını içeren bölümleyici.

parallelOptions
ParallelOptions

Bu işlemin davranışını yapılandıran bir nesne.

body
Action<TSource,ParallelLoopState>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

CancellationToken bağımsız değişkenindeki parallelOptions iptal edilir.

CancellationTokenSource içindeki parallelOptions ile CancellationToken ilişkilendirilmiş olan atılmıştır.

bağımsız source değişkenidir null.

-veya-

bağımsız parallelOptions değişkenidir null.

-veya-

bağımsız body değişkenidir null.

SupportsDynamicPartitions Bölümleyicideki source özelliği döndürürfalse.

-veya-

Bölümleyicideki herhangi bir yöntem döndürdüğünüzde sourcenulloluşan özel durum.

Belirtilen temsilcilerden birinden oluşan bir özel durum içermesi için atılan özel durum.

Açıklamalar

Bu aşırı yükleme, varsayılan bölümleme düzenini geçersiz kılmak istediğiniz senaryolar için sağlanır. Örneğin, küçük döngü gövdeleri aralığın bölümlenmesinden yararlanabilir. yöntemi, Parallel.ForEach özel bölümleyicilerin dinamik bölümlemeyi desteklemesini bekler. Daha fazla bilgi için bkz. PLINQ ve TPL için Özel Bölümleyiciler ve Nasıl yapılır: Dinamik Bölümleri Uygulama.

Ayrıca bkz.

Şunlara uygulanır

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState>)

Kaynak:
Parallel.cs
Kaynak:
Parallel.cs
Kaynak:
Parallel.cs

Yinelemelerin foreach paralel olarak çalışabileceği ve döngünün durumunun izlenip işlenebildiği bir üzerinde (For Each Visual Basic'te) bir IEnumerable işlem yürütür.

public:
generic <typename TSource>
 static System::Threading::Tasks::ParallelLoopResult ForEach(System::Collections::Generic::IEnumerable<TSource> ^ source, Action<TSource, System::Threading::Tasks::ParallelLoopState ^> ^ body);
public static System.Threading.Tasks.ParallelLoopResult ForEach<TSource> (System.Collections.Generic.IEnumerable<TSource> source, Action<TSource,System.Threading.Tasks.ParallelLoopState> body);
static member ForEach : seq<'Source> * Action<'Source, System.Threading.Tasks.ParallelLoopState> -> System.Threading.Tasks.ParallelLoopResult
Public Shared Function ForEach(Of TSource) (source As IEnumerable(Of TSource), body As Action(Of TSource, ParallelLoopState)) As ParallelLoopResult

Tür Parametreleri

TSource

Kaynaktaki verilerin türü.

Parametreler

source
IEnumerable<TSource>

Numaralandırılabilir bir veri kaynağı.

body
Action<TSource,ParallelLoopState>

Yineleme başına bir kez çağrılan temsilci.

Döndürülenler

Döngünün hangi bölümünün tamamlandığı hakkında bilgi içeren bir yapı.

Özel durumlar

bağımsız source değişkenidir null.

-veya-

body bağımsız değişkenidirnull.

Tüm iş parçacıklarında oluşan tek tek özel durumları içeren özel durum.

Açıklamalar

Temsilci body , numaralandırılabilir öğedeki source her öğe için bir kez çağrılır. Şu parametrelerle sağlanır: geçerli öğe ve döngüden erken çıkmak için kullanılabilecek bir ParallelLoopState örnek.

Ayrıca bkz.

Şunlara uygulanır