Stream.EndRead(IAsyncResult) メソッド


保留中の非同期読み取りが完了するまで待機します。Waits for the pending asynchronous read to complete. (代わりに、ReadAsync(Byte[], Int32, Int32) の使用を検討してください。)(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

 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



終了させる保留状態の非同期リクエストへの参照。The reference to the pending asynchronous request to finish.


ストリームから読み取ったバイト数 (0 ~要求したバイト数の間の数値)。The number of bytes read from the stream, between zero (0) and the number of bytes you requested. ゼロ (0) が返されるのは、ストリームの末尾で読み取ろうとしたときだけです。それ以外の場合は、少なくとも 1 バイトが読み込み可能になるまでブロックします。Streams return zero (0) only at the end of the stream, otherwise, they should block until at least one byte is available.


asyncResultnull です。asyncResult is null.

保留中の読み取り操作へのハンドルは使用できません。A handle to the pending read operation is not available.


保留中の操作は読み取りをサポートしていません。The pending operation does not support reading.

asyncResult は現在のストリームの BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) メソッドから取得されませんでした。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.


.NET Framework 4 およびそれ以前のバージョンで非同期 I/O 操作を実装するには、 BeginReadEndRead などのメソッドを使用する必要があります。In the .NET Framework 4 and earlier versions, you have to use methods such as BeginRead and EndRead to implement asynchronous I/O operations. これらのメソッドは、レガシコードをサポートするために .NET Framework 4.5.NET Framework 4.5 で引き続き使用できます。ただし、ReadAsyncWriteAsyncCopyToAsyncFlushAsyncなどの新しい非同期メソッドを使用すると、非同期 i/o 操作をより簡単に実装できます。These methods are still available in the .NET Framework 4.5.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.

EndRead を呼び出して、ストリームから読み取ったバイト数を確認します。Call EndRead to determine how many bytes were read from the stream.

EndRead は、BeginReadからのすべての IAsyncResult で1回呼び出すことができます。EndRead can be called once on every IAsyncResult from BeginRead.

このメソッドは、I/O 操作が完了するまでブロックします。This method blocks until the I/O operation has completed.