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

.NET Framework (current version)

Synchronously 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 TOutput Receive<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 to use to cancel the receive operation.

Return Value

Type: TOutput
The received value.

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).


The source is null.


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


timeout is greater than MaxValue.


No item could be received from the source.


The specified time-out expired before an item was received from the source.


The operation was canceled before an item was received from the source.

If the source successfully offered an item value that was received by this operation, that value is returned even if a concurrent time-out or cancellation request occurs.

.NET Framework

Supported in: 4.5

Portable Class Library

Supported in: Portable Class Library