CryptoStream.ReadAsync Метод

Определение

Перегрузки

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены.

ReadAsync(Memory<Byte>, CancellationToken)

Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Исходный код:
CryptoStream.cs
Исходный код:
CryptoStream.cs
Исходный код:
CryptoStream.cs

Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены.

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>
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 (нулю), если был достигнут конец потока.

Исключения

buffer имеет значение null.

offset или count является отрицательным значением.

Сумма offset и count больше, чем длина буфера.

Поток не поддерживает чтение.

Поток был удален.

Поток в настоящее время используется предыдущей операцией чтения.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

Комментарии

Важно!

Начиная с .NET 6, этот метод может считывать не столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе Частичные и нулевые операции чтения в DeflateStream, GZipStream и CryptoStream.

Чтобы приостановить выполнение метода до завершения задачи, необходимо перед вызовом ReadAsyncawait с помощью оператора (C#) или Await (Visual Basic). Дополнительные сведения см. в разделах Асинхронное программирование (C#) или Асинхронное программирование с помощью Async и Await (Visual Basic).

Если операция отменена до ее завершения, возвращаемая задача содержит Canceled значение свойства Status .

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Read(Byte[], Int32, Int32).

См. также раздел

Применяется к

ReadAsync(Memory<Byte>, CancellationToken)

Исходный код:
CryptoStream.cs
Исходный код:
CryptoStream.cs
Исходный код:
CryptoStream.cs

Асинхронно считывает последовательность байтов из текущего потока, перемещает позицию в потоке на число считанных байтов и отслеживает запросы отмены.

public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

buffer
Memory<Byte>

Область памяти, в которую будут записываться данные.

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены. Значение по умолчанию — None.

Возвращаемое значение

Задача, представляющая асинхронную операцию чтения. Значение свойства Result содержит общее число байтов, считанных в буфер. Итоговое значение может быть меньше количества выделенных в буфере байтов, если столько байтов в настоящее время недоступно, или оно может равняться нулю (0), если был достигнут конец потока.

Исключения

Объект , CryptoStreamMode связанный с текущим CryptoStream объектом, не соответствует базовому потоку. Например, это исключение возникает при использовании Read с базовым потоком, который выполняет только запись.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

Комментарии

Начиная с .NET 6, этот метод может считывать не столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе Частичные и нулевые операции чтения в DeflateStream, GZipStream и CryptoStream.

Применяется к