Stream.ReadAtLeastAsync Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Asynchronously reads at least a minimum number of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.
public System.Threading.Tasks.ValueTask<int> ReadAtLeastAsync (Memory<byte> buffer, int minimumBytes, bool throwOnEndOfStream = true, System.Threading.CancellationToken cancellationToken = default);
member this.ReadAtLeastAsync : Memory<byte> * int * bool * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReadAtLeastAsync (buffer As Memory(Of Byte), minimumBytes As Integer, Optional throwOnEndOfStream As Boolean = true, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parameters
- minimumBytes
- Int32
The minimum number of bytes to read into the buffer.
- throwOnEndOfStream
- Boolean
true
to throw an exception if the end of the stream is reached before reading minimumBytes
of bytes; false
to return less than minimumBytes
when the end of the stream is reached.
The default is true
.
- cancellationToken
- CancellationToken
The token to monitor for cancellation requests.
Returns
A task that represents the asynchronous read operation. The value of its Result property contains the total number of bytes read into the buffer. This is guaranteed to be greater than or equal to minimumBytes
when throwOnEndOfStream
is true
. This will be less than minimumBytes
when the end of the stream is reached and throwOnEndOfStream
is false
. This can be less than the number of bytes allocated in the buffer if that many bytes are not currently available.
Exceptions
minimumBytes
is negative, or is greater than the length of buffer
.
throwOnEndOfStream
is true
and the end of the stream is reached before reading
minimumBytes
bytes of data.
The cancellation token was canceled. This exception is stored into the returned task.
Remarks
When minimumBytes
is 0 (zero), this read operation will be completed without waiting for available data in the stream.