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


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

Параметры

buffer
Memory<Byte>

Область памяти для записи данных в.

cancellationToken
CancellationToken

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

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

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

Исключения

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

Комментарии

Это важно

Начиная с .NET 6 этот метод может не считывать столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе "Частичные и нулевые байты" в DeflateStream, GZipStream и CryptoStream.

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

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

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

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

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

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

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

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(cli::array <System::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);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] array, 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 (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (array 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 метод позволяет выполнять операции ввода-вывода с большим объемом ресурсов, не блокируя основной поток. Это особенно важно в классических приложениях, где операция потока, потребляющая много времени, может заблокировать поток пользовательского интерфейса и сделать приложение как если бы оно не работало. Асинхронные методы используются в сочетании с asyncawait ключевыми словами в Visual Basic и C#.

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

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

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

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