Stream.ReadExactlyAsync 方法

定義

多載

ReadExactlyAsync(Memory<Byte>, CancellationToken)

以非同步方式從目前的資料流程讀取位元組、將資料流程內的位置往前移,直到 buffer 填滿為止,並監視取消要求。

ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

以非同步方式從目前資料流程讀取 count 位元組數目、將資料流程內的位置往前移,以及監視取消要求。

ReadExactlyAsync(Memory<Byte>, CancellationToken)

來源:
Stream.cs
來源:
Stream.cs
來源:
Stream.cs

以非同步方式從目前的資料流程讀取位元組、將資料流程內的位置往前移,直到 buffer 填滿為止,並監視取消要求。

public System.Threading.Tasks.ValueTask ReadExactlyAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReadExactlyAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ReadExactlyAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask

參數

buffer
Memory<Byte>

寫入資料的緩衝區。

cancellationToken
CancellationToken

用來監視是否有取消要求的語彙基元。

傳回

表示非同步讀取作業的工作。

例外狀況

在填滿 buffer 之前,會到達資料流程的結尾。

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

備註

當 是空的時 buffer ,此讀取作業將會完成,而不需要等候資料流程中的可用資料。

適用於

ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

來源:
Stream.cs
來源:
Stream.cs
來源:
Stream.cs

以非同步方式從目前資料流程讀取 count 位元組數目、將資料流程內的位置往前移,以及監視取消要求。

public System.Threading.Tasks.ValueTask ReadExactlyAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default);
member this.ReadExactlyAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ReadExactlyAsync (buffer As Byte(), offset As Integer, count As Integer, Optional cancellationToken As CancellationToken = Nothing) As ValueTask

參數

buffer
Byte[]

寫入資料的緩衝區。

offset
Int32

開始於此處自資料流寫入資料的 buffer 中的位元組位移。

count
Int32

要從目前資料流程讀取的位元組數目。

cancellationToken
CancellationToken

用來監視是否有取消要求的語彙基元。

傳回

表示非同步讀取作業的工作。

例外狀況

buffernull

offset 不在 buffer 範圍內。

-或-

count 為負。

-或-

count 的組合 offset 所指定的範圍超過 的 buffer 長度。

讀取位元組數目之前 count ,會到達資料流程結尾。

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

備註

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

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 ReadExactly(Byte[], Int32, Int32) 例外狀況。

適用於