Stream.ReadAtLeastAsync 方法

定义

从当前流异步读取至少最小字节数,按读取的字节数推进流中的位置,并监视取消请求。

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)

参数

buffer
Memory<Byte>

要将数据写入的内存区域。

minimumBytes
Int32

要读入缓冲区的最小字节数。

throwOnEndOfStream
Boolean

true 如果在读取 minimumBytes 字节之前到达流的末尾,则引发异常; false 如果返回小于 minimumBytes 到达流的末尾,则返回 。 默认为 true

cancellationToken
CancellationToken

要监视取消请求的标记。

返回

表示异步读取操作的任务。 其 Result 属性的值包含读入缓冲区的总字节数。 当 为 truethrowOnEndOfStream,这保证大于或等于 minimumBytes 。 当到达流的末尾并且 throwOnEndOfStreamfalse时,此值将小于 minimumBytes 。 如果当前没有可用的字节数,则此值可能小于缓冲区中分配的字节数。

例外

minimumBytes 为负,或大于 的 buffer长度。

throwOnEndOfStream 为 , true 在读取 minimumBytes 数据字节之前到达流的末尾。

取消令牌已取消。 此异常存储在返回的任务中。

注解

当 为 0 (零) 时 minimumBytes ,此读取操作将完成,而无需等待流中的可用数据。

适用于