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 和舊版中,您必須使用 和 之類的BeginReadEndRead方法來實作異步檔案作業。 這些方法仍可在 .NET Framework 4.5 中使用以支援舊版程式代碼;不過,新的異步方法,例如 ReadAsync、 WriteAsync和 FlushAsync,可協助您更輕鬆地實作異步檔案作業。
EndWrite 每次呼叫 都必須只呼叫 BeginRead一次。 無法在開始另一個讀取之前結束讀取程式,可能會導致不想要的行為,例如死結。
注意
CanRead使用屬性來判斷目前的實例是否支援讀取。
EndRead 必須使用這個 IAsyncResult 呼叫,才能找出已讀取的位元組數目。