GZipStream.ReadAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
ReadAsync(Memory<Byte>, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока GZip в область памяти байтов, перемещает позицию в потоке GZip на число считанных байтов и отслеживает запросы отмены. |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Асинхронно считывает последовательность байтов из текущего потока GZip в массив байтов, перемещает позицию в потоке GZip на число считанных байтов и отслеживает запросы отмены. |
ReadAsync(Memory<Byte>, CancellationToken)
- Исходный код:
- GZipStream.cs
- Исходный код:
- GZipStream.cs
- Исходный код:
- GZipStream.cs
Асинхронно считывает последовательность байтов из текущего потока GZip в область памяти байтов, перемещает позицию в потоке GZip на число считанных байтов и отслеживает запросы отмены.
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)
Параметры
- cancellationToken
- CancellationToken
Токен для отслеживания запросов отмены. Значение по умолчанию — None.
Возвращаемое значение
Задача, которая представляет асинхронную операцию чтения, которая переносит общее число считанных байтов в буфер. Итоговое значение может быть меньше количества выделенных в буфере байтов, если столько байтов в настоящее время недоступно, или оно может равняться нулю (0), если был достигнут конец потока GZip.
Исключения
Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.
Комментарии
Важно!
Начиная с .NET 6, этот метод может считывать не столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе Частичные и нулевые операции чтения в DeflateStream, GZipStream и CryptoStream.
Метод ReadAsync
позволяет выполнять ресурсоемкие операции ввода-вывода, не блокируя поток main. Этот фактор производительности особенно важен для классических приложений, где ресурсоемкая потоковая операция может блокировать поток пользовательского интерфейса и выглядеть приложение так, как будто оно не работает. Асинхронные методы используются в сочетании с ключевыми словами async
и await
в Visual Basic и C#.
Используйте свойство , CanRead чтобы определить, поддерживает ли текущий экземпляр чтение.
Если операция отменена до ее завершения, возвращаемая задача содержит TaskStatus.Canceled значение свойства Task.Status .
Применяется к
ReadAsync(Byte[], Int32, Int32, CancellationToken)
- Исходный код:
- GZipStream.cs
- Исходный код:
- GZipStream.cs
- Исходный код:
- GZipStream.cs
Асинхронно считывает последовательность байтов из текущего потока GZip в массив байтов, перемещает позицию в потоке GZip на число считанных байтов и отслеживает запросы отмены.
public:
override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ array, int offset, int count, System::Threading::CancellationToken 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[] array, 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>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (array As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Параметры
- arraybuffer
- Byte[]
Буфер, в который записываются данные.
- offset
- Int32
Смещение в байтах, с которого начинается запись данных из потока GZip.
- count
- Int32
Максимальное число байтов, предназначенных для чтения.
- cancellationToken
- CancellationToken
Токен для отслеживания запросов отмены. Значение по умолчанию — None.
Возвращаемое значение
Задача, представляющая асинхронную операцию чтения, которая заключает общее число прочитанных байтов. Значение результата может быть меньше запрошенного числа байтов, если число доступных в данный момент байтов меньше запрошенного числа, или результат может быть равен 0 (нулю), если был достигнут конец потока GZip.
Исключения
Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.
Комментарии
Важно!
Начиная с .NET 6, этот метод может считывать не столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе Частичные и нулевые операции чтения в DeflateStream, GZipStream и CryptoStream.
Метод ReadAsync
позволяет выполнять ресурсоемкие операции ввода-вывода, не блокируя поток main. Этот фактор производительности особенно важен для классических приложений, где ресурсоемкая потоковая операция может блокировать поток пользовательского интерфейса и выглядеть приложение так, как будто оно не работает. Асинхронные методы используются в сочетании с ключевыми словами async
и await
в Visual Basic и C#.
Используйте свойство , CanRead чтобы определить, поддерживает ли текущий экземпляр чтение.
Если операция отменена до ее завершения, возвращаемая задача содержит TaskStatus.Canceled значение свойства Task.Status .
Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Read(Byte[], Int32, Int32).