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

定義

非同期書き込み操作を開始します。 (代わりに WriteAsync(Byte[], Int32, Int32) メソッドを使用することを検討してください。

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginWrite(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

パラメーター

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に渡されたコールバックで実行します。 非同期書き込み操作中にエラーが発生した場合、このメソッドから返されたEndWriteIAsyncResultが呼び出されるまで例外はスローされません。

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

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

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

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

適用対象