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


Stream.ReadExactlyAsync Метод

Определение

Перегрузки

ReadExactlyAsync(Memory<Byte>, CancellationToken)

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

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

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

ReadExactlyAsync(Memory<Byte>, CancellationToken)

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

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

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

Параметры

buffer
Memory<Byte>

Буфер, в который записываются данные.

cancellationToken
CancellationToken

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

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

Задача, представляющая асинхронную операцию чтения.

Исключения

Конец потока достигается до заполнения buffer.

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

Комментарии

Если buffer параметр пуст, эта операция чтения будет завершена без ожидания доступных данных в потоке.

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

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

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

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

public System.Threading.Tasks.ValueTask ReadExactlyAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken = default);
member this.ReadExactlyAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ReadExactlyAsync (buffer As Byte(), offset As Integer, count As Integer, Optional cancellationToken As CancellationToken = Nothing) As ValueTask

Параметры

buffer
Byte[]

Буфер, в который записываются данные.

offset
Int32

Смещение байтов в buffer, с которого начинается запись данных из потока.

count
Int32

Число байтов, считываемых из текущего потока.

cancellationToken
CancellationToken

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

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

Задача, представляющая асинхронную операцию чтения.

Исключения

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

Значение параметра offset выходит за пределы массива buffer.

-или-

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

-или-

Диапазон, заданный сочетанием offset и count , превышает длину buffer.

Конец потока достигается перед чтением count количества байтов.

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

Комментарии

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

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

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