DeflateStream.CopyToAsync(Stream, Int32, CancellationToken) Метод

Определение

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

public:
 override System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, int bufferSize, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
override this.CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Overrides Function CopyToAsync (destination As Stream, bufferSize As Integer, cancellationToken As CancellationToken) As Task

Параметры

destination
Stream

Поток, в который будет скопировано содержимое текущего потока Deflate.

bufferSize
Int32

Размер буфера в байтах. Это значение должно быть больше нуля. Размер по умолчанию — 81920.

cancellationToken
CancellationToken

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

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

Задача, представляющая асинхронную операцию копирования.

Исключения

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

Комментарии

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

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

Копирование начинается с текущей позиции в текущем потоке Deflate.

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

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