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
позволяет выполнять ресурсоемкие операции ввода-вывода, не блокируя поток main. Этот фактор производительности особенно важен для классических приложений, где ресурсоемкая потоковая операция может блокировать поток пользовательского интерфейса и выглядеть приложение так, как будто оно не работает. Асинхронные методы используются в сочетании с ключевыми словами async
и await
в Visual Basic и C#.
Если операция отменена до ее завершения, возвращаемая задача содержит TaskStatus.Canceled значение свойства Task.Status .
Копирование начинается с текущей позиции в текущем потоке Deflate.
Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые CopyTo(Stream, Int32).