Aggregate(TSource, TAccumulate, TResult) Method (ParallelQuery(TSource), Func(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>)>), Func<(Of <(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), _ seedFactory As Func(Of 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, Func<TAccumulate> seedFactory, 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.
- seedFactory
- Type: System..::.Func<(Of <(TAccumulate>)>)
A function that returns 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 parallelized queries. 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 seedFactory 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. |