Поделиться через


Stream.ReadAtLeastAsync Метод

Определение

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

public System.Threading.Tasks.ValueTask<int> ReadAtLeastAsync (Memory<byte> buffer, int minimumBytes, bool throwOnEndOfStream = true, System.Threading.CancellationToken cancellationToken = default);
member this.ReadAtLeastAsync : Memory<byte> * int * bool * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReadAtLeastAsync (buffer As Memory(Of Byte), minimumBytes As Integer, Optional throwOnEndOfStream As Boolean = true, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

buffer
Memory<Byte>

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

minimumBytes
Int32

Минимальное количество байтов для считывания в буфер.

throwOnEndOfStream
Boolean

true Значение , чтобы создать исключение, если конец потока достигается до считывания minimumBytes байтов; false значение , чтобы возвращать меньше, чем minimumBytes при достижении конца потока. Значение по умолчанию — true.

cancellationToken
CancellationToken

Токен для отслеживания запросов отмены.

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

Задача, представляющая асинхронную операцию чтения. Значение свойства Result содержит общее число байтов, считанных в буфер. Оно гарантированно будет больше или равно minimumBytes , если throwOnEndOfStream имеет значение true. Это значение будет меньше, чем minimumBytes при достижении конца потока и throwOnEndOfStream равно false. Это может быть меньше, чем количество байтов, выделенных в буфере, если это количество байтов в настоящее время недоступно.

Исключения

minimumBytes имеет отрицательное значение или больше длины buffer.

throwOnEndOfStream — и true конец потока достигается перед чтением minimumBytes байтов данных.

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

Комментарии

Если minimumBytes значение равно 0 (ноль), эта операция чтения будет завершена без ожидания доступных данных в потоке.

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