このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Stream.BeginRead メソッド

2013/12/12

非同期の読み込み動作を開始します。

Namespace:  System.IO
アセンブリ:  mscorlib (mscorlib.dll 内)

public virtual IAsyncResult BeginRead(
	byte[] buffer,
	int offset,
	int count,
	AsyncCallback callback,
	Object state
)

パラメーター

buffer
型: System.Byte []
データを読み込むバッファー。
offset
型: System.Int32
ストリームから読み込んだデータの書き込み開始位置を示す buffer 内のバイト オフセット。
count
型: System.Int32
読み取る最大バイト数。
callback
型: System.AsyncCallback
読み取り完了時に呼び出されるオプションの非同期コールバック。
state
型: System.Object
この特定の非同期読み取り要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

型: System.IAsyncResult
非同期の読み込みを表す IAsyncResult。まだ保留状態の場合もあります。

例外条件
IOException

ストリームの末尾を越えて非同期の読み込みを実行しようとしました。または、ディスク エラーが発生しました。

ArgumentException

1 つ以上の引数が無効です。

ObjectDisposedException

ストリームが閉じられた後でメソッドが呼び出されました。

NotSupportedException

現在のStream 実装は、読み取り操作をサポートしていません。

ストリームに対する BeginRead の既定の実装は、Read メソッドを同期的に呼び出します。このため、Read が一部のストリームをブロックする場合があります。一方、FileStream などのクラスのインスタンスは、インスタンスが非同期的に開かれていれば、非同期操作を完全にサポートします。このため、BeginRead を呼び出しても、これらのストリームはブロックされません。BeginRead をオーバーライドすると (たとえば、非同期デリゲートを使用するなどして)、非同期動作を提供できます。

読み込んだバイト数を確認し、読み込みに使用したオペレーティング システムのリソースを解放するには、戻り値の IAsyncResultEndRead メソッドに渡します。EndRead は、BeginRead を呼び出した回数だけ呼び出す必要があります。この操作は、BeginRead を呼び出したものと同じコードを使用するか、BeginRead に渡されたコールバックで実行できます。

ストリームの現在位置は、非同期の読み込みまたは書き込みが発行されたときに更新されます。I/O 操作の完了時ではありません。

複数の非同期要求を同時に実行した場合、要求の完了順序は不定です。

現在のインスタンスが読み取りをサポートしているかどうかを判別するには、CanRead プロパティを使用します。

ストリームが閉じている場合、または無効な引数を渡した場合は、BeginRead からすぐに例外がスローされます。I/O 要求中のディスク障害など、非同期読み取りの要求中に発生するエラーは、スレッド プールのスレッドで発生し、EndRead を呼び出すときに例外をスローします。

Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2015 Microsoft