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 操作已完成。
产品 | 版本 |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |