英語で読む

次の方法で共有


DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) メソッド

定義

非同期の書き込み操作を開始します。 (代わりに、WriteAsync(Byte[], Int32, Int32) メソッドの使用を検討します)。

public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);

パラメーター

arraybuffer
Byte[]

データの書き込み元となるバッファー。

offset
Int32

書き込みを開始するバイト オフセット。

count
Int32

書き込む最大バイト数。

asyncCallback
AsyncCallback

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

asyncState
Object

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

戻り値

まだ保留中である可能性がある非同期の書き込み操作を表すオブジェクト。

例外

メソッドは、ストリームの末尾を越えて非同期的に書き込もうとしました。または、ディスク エラーが発生しました。

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

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

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

ストリームが閉じているため、書き込み操作を実行できません。

注釈

.NET Framework 4.5 以降では、 メソッドを使用して非同期書き込み操作をWriteAsync実行できます。 このメソッドは BeginWrite 、レガシ コードをサポートするために現在のバージョンで引き続き使用できますが、新しい非同期メソッドを使用すると、非同期 I/O 操作をより簡単に実装できます。 詳細については、「非同期ファイル I/O」を参照してください。

現在の IAsyncResult メソッドによって返された オブジェクトを に EndWrite 渡して、書き込みが完了し、リソースが適切に解放されるようにします。 これを行うには、 を呼び出 BeginWrite したのと同じコードを使用するか、 に BeginWrite渡されたコールバックでを使用します。 非同期書き込み操作中にエラーが発生した場合、このメソッドによって返される をIAsyncResult使用して が呼び出されるまでEndWrite例外はスローされません。

ストリームが書き込み可能な場合、ストリームの末尾に書き込みを行うと、ストリームが展開されます。

ストリーム内の現在の位置は、I/O 操作が完了したときではなく、非同期の読み取りまたは書き込み操作を発行すると更新されます。 複数の同時非同期要求によって、要求完了順序が不確実になります。

プロパティを使用して、 CanWrite 現在 DeflateStream のオブジェクトが書き込みをサポートしているかどうかを判断します。

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

適用対象