DataflowBlock.Choose<T1, T2, T3> Method (ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>)

.NET Framework (current version)

Monitors three dataflow sources, invoking the provided handler for whichever source makes data available first.

Namespace:  System.Threading.Tasks.Dataflow
Assembly:  System.Threading.Tasks.Dataflow (in System.Threading.Tasks.Dataflow.dll)

public static Task<int> Choose<T1, T2, T3>(
	ISourceBlock<T1> source1,
	Action<T1> action1,
	ISourceBlock<T2> source2,
	Action<T2> action2,
	ISourceBlock<T3> source3,
	Action<T3> action3
)

Type Parameters

T1

Specifies type of data contained in the first source.

T2

Specifies type of data contained in the second source.

T3

Specifies type of data contained in the third source.

Parameters

source1
Type: System.Threading.Tasks.Dataflow.ISourceBlock<T1>

The first source.

action1
Type: System.Action<T1>

The handler to execute on data from the first source.

source2
Type: System.Threading.Tasks.Dataflow.ISourceBlock<T2>

The second source.

action2
Type: System.Action<T2>

The handler to execute on data from the second source.

source3
Type: System.Threading.Tasks.Dataflow.ISourceBlock<T3>

The third source.

action3
Type: System.Action<T3>

The handler to execute on data from the third source.

Return Value

Type: System.Threading.Tasks.Task<Int32>
A Task<TResult> that represents the asynchronous choice. If all sources are completed prior to the choice completing, the resulting task will be canceled. When one of the sources has data available and successfully propagates it to the choice, the resulting task will complete when the handler completes; if the handler throws an exception, the task will end in the Faulted state and will contain the unhandled exception. Otherwise, the task will end with its Result set to the 0-based index of the source.
This method will only consume an element from one of the data sources, never more than one.

ExceptionCondition
ArgumentNullException

The source1 is null.

-or-

The action1 is null.

-or-

The source2 is null.

-or-

The action2 is null.

-or-

The source3 is null.

-or-

The action3 is null.

.NET Framework

Supported in: 4.5

Portable Class Library

Supported in: Portable Class Library
Show: