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

.NET Framework (current version)

Asynchronously receives a value from a specified source, observing an optional time-out period.

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

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.

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, 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