Stream.EndRead(IAsyncResult) 方法

定義

等候暫止的非同步讀取完成。 (請考慮用 ReadAsync(Byte[], Int32, Int32) 替代。)

public:
 virtual int EndRead(IAsyncResult ^ asyncResult);
public virtual int EndRead (IAsyncResult asyncResult);
abstract member EndRead : IAsyncResult -> int
override this.EndRead : IAsyncResult -> int
Public Overridable Function EndRead (asyncResult As IAsyncResult) As Integer

參數

asyncResult
IAsyncResult

要完成的擱置中非同步要求的參考。

傳回

Int32

從資料流讀取的位元組數,位於零 (0) 和您所要求的位元組數之間。 資料流只在資料流結尾傳回零 (0),否則,它們應該封鎖,直到至少有一個位元組可用為止。

例外狀況

asyncResultnull

暫止讀取作業的控制代碼無法使用。

-或-

暫止的作業不支援讀取。

asyncResult 不是來自目前資料流的 BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 方法。

資料流已關閉或發生內部錯誤。

備註

在 .NET Framework 4 (含) 以前版本中,您必須使用方法 (例如 BeginReadEndRead ) 實作非同步 I/O 作業。 這些方法仍可在 .NET Framework 4.5 中使用,以支援舊版程式碼;不過,新的非同步方法,例如 ReadAsyncWriteAsyncCopyToAsyncFlushAsync ,可協助您更輕鬆地實作非同步 I/O 作業。

呼叫 EndRead 以判斷從資料流程讀取的位元組數目。

EndRead每個 都可以從 BeginRead 呼叫一次 IAsyncResult

這個方法會封鎖,直到 I/O 作業完成為止。

適用於

另請參閱