このドキュメントはアーカイブされており、メンテナンスされていません。

Stream.BeginWrite メソッド

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

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)

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

パラメータ

buffer

データを書き込む元となるバッファ。

offset

書き込むデータの開始位置を示す buffer 内のバイト オフセット。

count

書き込む最大バイト数。

callback

書き込みの完了時に呼び出されるオプションの非同期コールバック。

state

この特定の非同期書き込み要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

非同期の書き込みを表す IAsyncResult。まだ保留状態の場合もあります。

例外の種類条件

IOException

ファイルの末尾を越えて非同期の書き込みを実行しようとしました。または、ディスク エラーが発生しました。

ArgumentException

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

ObjectDisposedException

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

NotSupportedException

現在の Stream 実装は、書き込み操作をサポートしていません。

ファイルの作成およびテキストのファイルへの書き込みの例については、「方法 : ファイルにテキストを書き込む」を参照してください。ファイルからのテキストの読み取りの例については、「方法 : ファイルからテキストを読み取る」を参照してください。バイナリ ファイルの読み取りおよび書き込みの例については、「方法 : 新しく作成されたデータ ファイルに対して読み書きする」を参照してください。非同期ファイル I/O の例については、「非同期ファイル I/O」を参照してください。

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

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

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

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

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

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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
表示: