共用方式為


BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 方法

定義

開始非同步讀取操作。 (考慮改用 ReadAsync(Byte[], Int32, Int32, CancellationToken) 。)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

參數

buffer
Byte[]

用來讀取資料的緩衝區。

offset
Int32

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

count
Int32

最大可讀取的位元組數。

callback
AsyncCallback

一個可選的非同步回撥,當讀取完成時呼叫。

state
Object

一個使用者提供的物件,用來區分此特定非同步讀取請求與其他請求。

傳回

一個代表非同步讀取的物件,該讀取可能仍在待處理中。

例外狀況

buffernull

offsetcount 是陰性。

嘗試在串流結束後進行非同步讀取。

緩衝區長度減 offset 值小於 count

目前的串流不支援讀取操作。

備註

在 .NET Framework 4 及更早版本中,你必須使用像 BeginReadEndRead 這樣的方法來實作非同步檔案操作。 這些方法仍可在 .NET Framework 4.5 中提供,以支援舊有程式碼;然而,新的非同步方法,如 ReadAsyncWriteAsyncFlushAsync和 ,能幫助你更輕鬆地實作非同步檔案操作。

EndWrite每次呼叫 必須精確地呼叫一次。BeginRead 未能在開始下一個讀取前結束讀取程序,可能導致不理想的行為,如死結。

備註

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

EndRead 必須用這個 IAsyncResult 方式來查詢讀取了多少位元組。

適用於