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

对要完成的挂起异步请求的引用。

返回

从流中读取的字节数,介于零 (0) 和请求的字节数之间。 仅当请求了 0 个字节或由于位于流的末尾而没有更多字节可用时,ReadAsync 才返回零 (0) ;否则,在至少有一个字节可用之前,读取操作不会完成。 如果请求了零个字节,则读取操作可能会立即完成,也可能在至少有一个字节可用 (但不会) 使用任何数据。

例外

asyncResultnull

处于挂起状态的读取操作的句柄不可用。

- 或 -

挂起操作不支持读取。

流已关闭或出现了内部错误。

注解

在 .NET Framework 4 和更早的版本中,您必须使用 BeginReadEndRead 之类的方法来实现异步 I/O 操作。 这些方法在 .NET Framework 4.5 中仍然可用,以支持旧代码;但是,新的异步方法(如 ReadAsyncWriteAsyncCopyToAsyncFlushAsync)可帮助你更轻松地实现异步 I/O 操作。

调用 EndRead 以确定从流中读取的字节数。

EndRead可以从 中对每个IAsyncResultBeginRead调用一次。

此方法将一直阻塞,直到 I/O 操作已完成。

适用于

另请参阅