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 から要求されたバイト数までのストリームから読み取られたバイト数。 ReadAsync は、0 バイトが要求された場合、またはストリームの末尾にあるために使用可能なバイトがなくなった場合にのみ、ゼロ (0) を返します。それ以外の場合、読み取り操作は、少なくとも 1 バイトが使用可能になるまで完了しません。 0 バイトが要求された場合、読み取り操作は、少なくとも 1 バイトが使用可能になるまで (ただし、データを使用せずに) すぐに完了するか、完了しない可能性があります。

例外

asyncResultnullです。

保留中の読み取り操作へのハンドルは使用できません。

- または -

保留中の操作は読み取りをサポートしていません。

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

ストリームが閉じているか、内部エラーが発生しました。

注釈

.NET Framework 4 およびそれ以前のバージョンで非同期 I/O 操作を実装するには、 BeginReadEndRead などのメソッドを使用する必要があります。 これらのメソッドは、レガシ コードをサポートするために .NET Framework 4.5 で引き続き使用できます。ただし、、 WriteAsyncCopyToAsyncFlushAsyncなどのReadAsync新しい非同期メソッドを使用すると、非同期 I/O 操作をより簡単に実装できます。

ストリームから読み取られたバイト数を確認するには、 を呼び出 EndRead します。

EndReadは、 からBeginReadごとに IAsyncResult 1 回呼び出すことができます。

このメソッドは、I/O 操作が完了するまでブロックします。

適用対象

こちらもご覧ください