DataflowBlock.ReceiveAsync<TOutput> Method (ISourceBlock<TOutput>, TimeSpan, CancellationToken)

.NET Framework (current version)

Asynchronously receives a value from a specified source, providing a token to cancel the operation and observing an optional time-out interval.

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

public static Task<TOutput> ReceiveAsync<TOutput>(
	this ISourceBlock<TOutput> source,
	TimeSpan timeout,
	CancellationToken cancellationToken

Type Parameters


The type of data contained in the source.


Type: System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>

The source from which to receive the value.

Type: System.TimeSpan

The maximum time interval, in milliseconds, to wait for the synchronous operation to complete, or an interval that represents -1 milliseconds to wait indefinitely.

Type: System.Threading.CancellationToken

The token which may be used to cancel the receive operation.

Return Value

Type: System.Threading.Tasks.Task<TOutput>
A task that represents the asynchronous receive operation. When a value is successfully received from the source, the returned task is completed and its Result returns the value. If a value cannot be retrieved because the time-out expired or cancellation was requested, the returned task is canceled. If the value cannot be retrieved because the source is empty and completed, an InvalidOperationException exception is thrown in the returned task.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type ISourceBlock<TOutput>. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).


source is null.


timeout is a negative number other than -1 milliseconds, which represents an infinite time-out period.


timeout is greater than MaxValue.

.NET Framework

Supported in: 4.5

Portable Class Library

Supported in: Portable Class Library