Parallel::ForEach<TSource> Method (Partitioner<TSource>^, Action<TSource>^)
Executes a foreach (For Each in Visual Basic) operation on a Partitioner in which iterations may run in parallel.
Assembly: mscorlib (in mscorlib.dll)
public: generic<typename TSource> static ParallelLoopResult ForEach( Partitioner<TSource>^ source, Action<TSource>^ body )
Parameters
- source
-
Type:
System.Collections.Concurrent::Partitioner<TSource>^
The partitioner that contains the original data source.
- body
-
Type:
System::Action<TSource>^
The delegate that is invoked once per iteration.
Return Value
Type: System.Threading.Tasks::ParallelLoopResultA structure that contains information about which portion of the loop completed.
Type Parameters
- TSource
The type of the elements in source.
| Exception | Condition |
|---|---|
| ArgumentNullException | The source argument is null. -or- The body argument is null. |
| InvalidOperationException | The SupportsDynamicPartitions property in the source partitioner returns false. -or- The exception that is thrown when any methods in the source partitioner return null. -or- The GetPartitions method in the source partitioner does not return the correct number of partitions. |
This overload is provided for scenarios where you want to override the default partitioning scheme. For example, small loop bodies might benefit from partitioning the range. The Parallel::ForEach<TSource> method expects custom partitioners to support dynamic partitioning. For more information, see Custom Partitioners for PLINQ and TPL and How to: Implement Dynamic Partitions.
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1