DataflowBlock::ReceiveAsync<TOutput> Method (ISourceBlock<TOutput>^, TimeSpan)
Asynchronously receives a value from a specified source, observing an optional time-out period.
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 )
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.
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.
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. |