Stream.EndRead(IAsyncResult) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
等待挂起的异步读取完成。 (请考虑改用 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) ;否则,在至少有一个字节可用之前,读取操作不会完成。 如果请求了零个字节,则读取操作可能会立即完成,也可能在至少有一个字节可用 (但不会) 使用任何数据。
例外
asyncResult
为 null
。
asyncResult
不源于当前流的 BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 方法。
流已关闭或出现了内部错误。
注解
在 .NET Framework 4 和更早的版本中,您必须使用 BeginRead 和 EndRead 之类的方法来实现异步 I/O 操作。 这些方法在 .NET Framework 4.5 中仍然可用,以支持旧代码;但是,新的异步方法(如 ReadAsync、WriteAsync、 CopyToAsync和 FlushAsync)可帮助你更轻松地实现异步 I/O 操作。
调用 EndRead
以确定从流中读取的字节数。
EndRead
可以从 中对每个IAsyncResultBeginRead调用一次。
此方法将一直阻塞,直到 I/O 操作已完成。