Stream.ReadAtLeastAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以異步方式從目前數據流讀取至少位元組數目、依讀取的位元組數目將數據流中的位置往前移,並監視取消要求。
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)
參數
- minimumBytes
- Int32
要讀入緩衝區的位元元組數下限。
- throwOnEndOfStream
- Boolean
true
表示如果在讀取 minimumBytes
位元組之前到達數據流結尾,則會擲回例外狀況; false
表示傳回小於 minimumBytes
到達數據流結尾的時間。
預設為 true
。
- cancellationToken
- CancellationToken
用來監視是否有取消要求的語彙基元。
傳回
表示非同步讀取作業的工作。 其 Result 屬性值包含讀入緩衝區的位元組總數。 當 為 true
時throwOnEndOfStream
,這保證大於或等於 minimumBytes
。 當到達資料流結尾且 throwOnEndOfStream
為 false
時,這會小於 minimumBytes
。 如果目前無法使用許多位元組,這可以小於緩衝區中配置的位元元組數目。
例外狀況
minimumBytes
為負數,或大於 的 buffer
長度。
throwOnEndOfStream
是 true
,而且數據流的結尾會在讀取 minimumBytes
數據的位元組之前到達。
取消標記已取消。 此例外狀況會儲存在傳回的工作中。
備註
當 minimumBytes
為 0 (零) 時,此讀取作業將會完成,而不需要等待數據流中的可用數據。