Бөлісу құралы:


BufferedStream.ReadAsync Метод

Определение

Перегрузки

Имя Описание
ReadAsync(Memory<Byte>, CancellationToken)

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

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

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

ReadAsync(Memory<Byte>, CancellationToken)

Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.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 (ноль), если достигнут конец потока.

Исключения

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

Комментарии

Этот ReadAsync метод позволяет выполнять операции ввода-вывода с большим объемом ресурсов, не блокируя основной поток. Это особенно важно в приложении для Магазина Windows 8.x или классическом приложении, где времязатратная операция потока может заблокировать поток пользовательского интерфейса и создать впечатление, что приложение не работает. Асинхронные методы используются в сочетании с asyncawait ключевыми словами в Visual Basic и C#.

CanRead Используйте свойство, чтобы определить, поддерживает ли текущий экземпляр чтение.

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

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

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

Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.cs
Исходный код:
BufferedStream.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

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

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

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

Исключения

buffer равно null.

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

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

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

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

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

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

Комментарии

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

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

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