DataflowBlock::ReceiveAsync<TOutput> Method (ISourceBlock<TOutput>^, TimeSpan, CancellationToken)
Asynchronously receives a value from a specified source, providing a token to cancel the operation and observing an optional time-out interval.
Assembly: System.Threading.Tasks.Dataflow (in System.Threading.Tasks.Dataflow.dll)
public: generic<typename TOutput> [ExtensionAttribute] static Task<TOutput>^ ReceiveAsync( ISourceBlock<TOutput>^ source, TimeSpan timeout, CancellationToken cancellationToken )
Parameters
- source
-
Type:
System.Threading.Tasks.Dataflow::ISourceBlock<TOutput>^
The source from which to receive the value.
- timeout
-
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.
- cancellationToken
-
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.
Type Parameters
- TOutput
The type of data contained in the source.
| Exception | Condition |
|---|---|
| ArgumentNullException | source is null. |
| ArgumentOutOfRangeException | timeout is a negative number other than -1 milliseconds, which represents an infinite time-out period. -or- timeout is greater than MaxValue. |