GZipStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非同期読み取り操作を開始します。 (代わりに ReadAsync(Byte[], Int32, Int32) メソッドを使用することを検討してください。
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::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
Public Overrides Function BeginRead (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 つ以上の引数が無効です。
ストリームが閉じられた後、メソッドが呼び出されました。
現在の GZipStream 実装では、読み取り操作はサポートされていません。
ストリームが閉じているため、読み取り操作を実行できません。
注釈
Important
.NET 6 以降では、このメソッドは要求されたバイト数を読み取らない可能性があります。 詳細については、「 DeflateStream、GZipStream、CryptoStream の部分読み取りと 0 バイト読み取り」を参照してください。
.NET Framework 4.5 以降では、 Stream.ReadAsync メソッドを使用して非同期読み取り操作を実行できます。 BeginRead メソッドは、レガシ コードをサポートするために現在のバージョンでも使用できますが、新しい非同期メソッドを使用すると、非同期 I/O 操作をより簡単に実装できます。 詳細については、「 非同期ファイル I/O」を参照してください。
IAsyncResult戻り値をストリームのEndReadメソッドに渡して、読み取られたバイト数を確認し、読み取りに使用されるオペレーティング システム リソースを解放します。 これを行うには、 BeginRead を呼び出したのと同じコードを使用するか、 BeginReadに渡されたコールバックで実行します。
ストリーム内の現在の位置は、I/O 操作が完了したときではなく、非同期の読み取りまたは書き込みが発行されたときに更新されます。
複数の同時非同期要求では、要求の完了順序が不明になります。
CanRead プロパティを使用して、現在のGZipStream オブジェクトが読み取りをサポートしているかどうかを判断します。
ストリームが閉じているか、無効な引数を渡すと、 BeginReadからすぐに例外がスローされます。 I/O 要求中のディスク障害など、非同期読み取り要求中に発生するエラーは、スレッド プール スレッドで発生し、 EndReadを呼び出すときに例外をスローします。