Aggregate(TSource, TAccumulate, TResult) Method (ParallelQuery(TSource), TAccumulate, Func(TAccumulate, TSource, TAccumulate), Func(TAccumulate, TAccumulate, TAccumulate), Func(TAccumulate, TResult))
From Task Parallel System.Threading
|
|
| .NET Framework Class Library |
| ParallelEnumerable..::.Aggregate<(Of <(TSource, TAccumulate, TResult>)>) Method (ParallelQuery<(Of <(TSource>)>), TAccumulate, Func<(Of <(TAccumulate, TSource, TAccumulate>)>), Func<(Of <(TAccumulate, TAccumulate, TAccumulate>)>), Func<(Of <(TAccumulate, TResult>)>)) |
| ParallelEnumerable Class See Also Send Feedback |
Applies in parallel an accumulator function over a sequence. This overload is not
available in the sequential implementation.
Namespace:
System.Linq
Assembly:
System.Threading (in System.Threading.dll)
Syntax
| Visual Basic (Declaration) |
|---|
Public Shared Function Aggregate(Of TSource, TAccumulate, TResult) ( _ source As ParallelQuery(Of TSource), _ seed As TAccumulate, _ updateAccumulatorFunc As Func(Of TAccumulate, TSource, TAccumulate), _ combineAccumulatorsFunc As Func(Of TAccumulate, TAccumulate, TAccumulate), _ resultSelector As Func(Of TAccumulate, TResult) _ ) As TResult |
| C# |
|---|
public static TResult Aggregate<TSource, TAccumulate, TResult>( ParallelQuery<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> updateAccumulatorFunc, Func<TAccumulate, TAccumulate, TAccumulate> combineAccumulatorsFunc, Func<TAccumulate, TResult> resultSelector ) |
Parameters
- source
- Type: System.Linq..::.ParallelQuery<(Of <(TSource>)>)
A sequence to aggregate over.
- seed
- Type: TAccumulate
The initial accumulator value.
- updateAccumulatorFunc
- Type: System..::.Func<(Of <(TAccumulate, TSource, TAccumulate>)>)
An accumulator function to be invoked on each element in a partition.
- combineAccumulatorsFunc
- Type: System..::.Func<(Of <(TAccumulate, TAccumulate, TAccumulate>)>)
An accumulator function to be invoked on the yielded element from each partition.
- resultSelector
- Type: System..::.Func<(Of <(TAccumulate, TResult>)>)
A function to transform the final accumulator value into the result value.
Type Parameters
- TSource
- The type of the elements of source.
- TAccumulate
- The type of the accumulator value.
- TResult
- The type of the resulting value.
Return Value
The transformed final accumulator value.
Remarks
This overload is specific to processing a parallelized query. A parallelized query may
partition the data source sequence into several sub-sequences (partitions).
The updateAccumulatorFunc is invoked on each element within partitions.
Each partition then yields a single accumulated result. The combineAccumulatorsFunc
is then invoked on the results of each partition to yield a single element. This element is then
transformed by the resultSelector function.
Exceptions
| Exception | Condition |
|---|---|
| System..::.ArgumentNullException | source or updateAccumulatorFunc or combineAccumulatorsFunc or resultSelector is a null reference (Nothing in Visual Basic). |
| System..::.AggregateException | One or more exceptions occurred during the evaluation of the query. |
| System..::.OperationCanceledException | The query was canceled. |