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 長度。

throwOnEndOfStreamtrue ,而且資料流程的結尾會在讀取 minimumBytes 資料的位元組之前到達。

解除標記已取消。 此例外狀況會儲存在傳回的工作中。

備註

minimumBytes 為 0 (零) 時,此讀取作業將會完成,而不需要等待資料流程中的可用資料。

適用於