共用方式為


BufferedStream.ReadAsync 方法

定義

多載

名稱 Description
ReadAsync(Memory<Byte>, CancellationToken)

非同步讀取目前緩衝串流中的位元組序列,並依讀取位元組數推進緩衝串流中的位置。

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

非同步讀取目前串流的位元組序列,依讀取位元組數前進串流中的位置,並監控取消請求。

ReadAsync(Memory<Byte>, CancellationToken)

來源:
BufferedStream.cs
來源:
BufferedStream.cs
來源:
BufferedStream.cs
來源:
BufferedStream.cs
來源:
BufferedStream.cs

非同步讀取目前緩衝串流中的位元組序列,並依讀取位元組數推進緩衝串流中的位置。

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

參數

buffer
Memory<Byte>

寫入資料的記憶體區域。

cancellationToken
CancellationToken

用來監控取消申請的代幣。 預設值為 None

傳回

一個代表非同步讀取操作的任務。 其 Result 屬性的值包含讀取到緩衝區的總位元組數。 若緩衝區目前沒有分配的位元組數,結果值可能小於該位元組數;若已到達串流末端,則可為零。

例外狀況

取消令牌也被取消了。 此例外會儲存在回傳的任務中。

備註

ReadAsync 方法能讓你執行資源密集型的 I/O 操作,而不阻塞主執行緒。 在 Windows 8.x 市集應用程式或傳統型應用程式中,此效能考慮特別重要,其中耗時的串流作業可能會封鎖 UI 線程,並讓應用程式看起來好像無法運作。 非同步方法與 asyncawait 關鍵字搭配使用 Visual Basic 和 C# 中。

利用該 CanRead 屬性判斷目前實例是否支援讀取。

若操作在完成前被取消,回傳的任務會包含 TaskStatus.CanceledStatus 屬性的值。

適用於

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

來源:
BufferedStream.cs
來源:
BufferedStream.cs
來源:
BufferedStream.cs
來源:
BufferedStream.cs
來源:
BufferedStream.cs

非同步讀取目前串流的位元組序列,依讀取位元組數前進串流中的位置,並監控取消請求。

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

參數

buffer
Byte[]

用來寫入資料的緩衝區。

offset
Int32

從串流開始寫入資料的位元組偏移 buffer 量。

count
Int32

最大可讀取的位元組數。

cancellationToken
CancellationToken

用來監控取消申請的代幣。

傳回

一個代表非同步讀取操作的任務。 回傳的任務包含緩衝區中讀取的總位元組數。 若目前可用位元組數少於請求的位元組數,結果值可小於請求的位元組數;若已到達串流結束,則可為 0(0)。

例外狀況

buffernull

offsetcount 是陰性。

count的和offset大於緩衝區長度。

串流不支援閱讀。

溪流已被處理。

該串流目前已被先前的讀取操作使用。

取消令牌也被取消了。 此例外會儲存在回傳的任務中。

備註

你可以建立一個取消標記,方法是建立該類別的實例CancellationTokenSource,並將該屬性作為cancellationToken參數傳遞Token

此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Read(Byte[], Int32, Int32)拋出的例外。

適用於