エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Stream.BeginWrite メソッド

2013/12/12

非同期の書き込み操作を開始します。

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

public virtual IAsyncResult BeginWrite(
	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 実装は、書き込み操作をサポートしていません。

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

書き込みを完了し、リソースを適切に解放するには、現在のメソッドから返された IAsyncResultEndWrite に渡す必要があります。EndWrite は、BeginWrite を呼び出した回数だけ呼び出す必要があります。この操作は、BeginWrite を呼び出したものと同じコードを使用するか、BeginWrite に渡されたコールバックで実行できます。非同期書き込み中にエラーが発生した場合、このメソッドから返される IAsyncResult を使用して EndWrite を呼び出すまで、例外はスローされません。

ストリームへの書き込みが可能なときにストリームの末尾で書き込みを行うと、ストリームが拡張されます。

ストリームの現在位置は、非同期の読み込みまたは書き込みが発行されたときに更新されます。I/O 操作の実行時ではありません。複数の非同期要求を同時に実行した場合、要求の完了順序は不定です。

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

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

Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft