CryptoStream.ReadAsync(Byte[], Int32, Int32, CancellationToken) メソッド

定義

現在のストリームからバイト シーケンスを非同期的に読み取り、読み取ったバイト数だけストリーム内の位置を進め、取り消し要求を監視します。

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
abstract member ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

パラメーター

buffer
Byte[]

データを書き込むバッファー。

offset
Int32

ストリームからのデータの書き込みを開始する buffer のバイト オフセット。

count
Int32

読み取る最大バイト数。

cancellationToken
CancellationToken

キャンセル要求を監視するトークン。 既定値は None です。

返品

非同期読み取り操作を表すタスク。 タスク オブジェクトの TResult パラメーターの値には、バッファーに読み込まれる合計バイト数が含まれます。 結果は、現在使用可能なバイト数が要求された数より少ない場合は要求されたバイト数より小さくなることがあります。ストリームの末尾に達した場合は 0 (ゼロ) にすることができます。

例外

buffernullです。

offset または count が負の値です。

offsetcountの合計がバッファー長を超えています。

ストリームは読み取りをサポートしていません。

ストリームが破棄されました。

ストリームは現在、以前の読み取り操作で使用されています。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

Important

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

タスクが完了するまでメソッドの実行を中断するには、ReadAsync (C#) または await (Visual Basic) 演算子でAwaitする呼び出しの前に作成する必要があります。 詳細については、「 非同期プログラミング (C#) 」または 「Async および Await を使用した非同期プログラミング (Visual Basic)」を参照してください。

操作が完了する前に取り消された場合、返されるタスクには、Canceled プロパティのStatus値が含まれます。

このメソッドは、メソッドの同期的な例外がスローできるすべての非使用例外を返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機しているときにスローされます。 ArgumentException などの使用に関する例外は、引き続き同期的にスローされます。 格納されている例外については、 Read(Byte[], Int32, Int32)によってスローされる例外を参照してください。

適用対象

こちらもご覧ください