Stream.EndRead(IAsyncResult) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Waits for the pending asynchronous read to complete. (Consider using ReadAsync(Byte[], Int32, Int32) instead.)
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
Parameters
- asyncResult
- IAsyncResult
The reference to the pending asynchronous request to finish.
Returns
The number of bytes read from the stream, between zero (0) and the number of bytes requested. ReadAsync returns zero (0) only if zero bytes were requested or if no more bytes will be available because it's at the end of the stream; otherwise, read operations do not complete until at least one byte is available. If zero bytes are requested, read operations may complete immediately or may not complete until at least one byte is available (but without consuming any data).
Exceptions
asyncResult
is null
.
A handle to the pending read operation is not available.
-or-
The pending operation does not support reading.
asyncResult
did not originate from a BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) method on the current stream.
The stream is closed or an internal error has occurred.
Remarks
In the .NET Framework 4 and earlier versions, you have to use methods such as BeginRead and EndRead to implement asynchronous I/O operations. These methods are still available in the .NET Framework 4.5 to support legacy code; however, the new async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you implement asynchronous I/O operations more easily.
Call EndRead
to determine how many bytes were read from the stream.
EndRead
can be called once on every IAsyncResult from BeginRead.
This method blocks until the I/O operation has completed.