GZipStream.ReadAsync Метод

Определение

Перегрузки

ReadAsync(Memory<Byte>, CancellationToken)

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

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

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

ReadAsync(Memory<Byte>, CancellationToken)

Source:
GZipStream.cs
Source:
GZipStream.cs
Source:
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)

Параметры

buffer
Memory<Byte>

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

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)

Source:
GZipStream.cs
Source:
GZipStream.cs
Source:
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).

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