BufferedStream.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>
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

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

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

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

Исключения

buffer равно null.

offset или count отрицательный.

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

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

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

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

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

Комментарии

Маркер отмены можно создать, создав экземпляр CancellationTokenSource класса и передав Token свойство в качестве cancellationToken параметра.

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

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