次の方法で共有


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

定義

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

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

パラメーター

bufferarray
Byte[]

データを読み取るバイト配列。

offset
Int32

ストリームからのデータの読み取りを開始するバイト オフセット。

count
Int32

読み取る最大バイト数。

asyncCallback
AsyncCallback

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

asyncState
Object

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

戻り値

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

例外

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

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

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

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

この呼び出しは完了できません。

注釈

重要

.NET 6 以降では、このメソッドは要求されたバイト数を読み取らない可能性があります。 詳細については、「 DeflateStream、GZipStream、CryptoStream の部分読み取りと 0 バイト読み取り」を参照してください。

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

ストリームの IAsyncResult メソッドに戻り値を EndRead 渡して、読み取られたバイト数を確認し、読み取りに使用されるオペレーティング システム リソースを解放します。 これを行うには、 を呼び出 BeginRead したのと同じコードを使用するか、 に BeginRead渡されたコールバックでを使用します。

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

複数の同時非同期要求によって、要求完了順序が不確実になります。

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

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

適用対象