BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開始非同步讀取操作。 (考慮改用 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
一個使用者提供的物件,用來區分此特定非同步讀取請求與其他請求。
傳回
一個代表非同步讀取的物件,該讀取可能仍在待處理中。
例外狀況
buffer 為 null。
offset 或 count 是陰性。
嘗試在串流結束後進行非同步讀取。
緩衝區長度減 offset 值小於 count。
目前的串流不支援讀取操作。
備註
在 .NET Framework 4 及更早版本中,你必須使用像 BeginRead 和 EndRead 這樣的方法來實作非同步檔案操作。 這些方法仍可在 .NET Framework 4.5 中提供,以支援舊有程式碼;然而,新的非同步方法,如 ReadAsync、 WriteAsync、 FlushAsync和 ,能幫助你更輕鬆地實作非同步檔案操作。
EndWrite每次呼叫 必須精確地呼叫一次。BeginRead 未能在開始下一個讀取前結束讀取程序,可能導致不理想的行為,如死結。
備註
利用該 CanRead 屬性判斷目前實例是否支援讀取。
EndRead 必須用這個 IAsyncResult 方式來查詢讀取了多少位元組。