GZipStream.CopyToAsync(Stream, Int32, CancellationToken) 方法

定义

使用指定的缓冲区大小,从当前 GZip 流中异步读取字节并将其写入到另一流中。

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

向其中复制当前 GZip 流的内容的流。

bufferSize
Int32

缓冲区的大小(以字节为单位)。 此值必须大于零。 默认大小为 81920。

cancellationToken
CancellationToken

要监视取消请求的标记。 默认值为 None

返回

表示异步复制操作的任务。

例外

取消令牌已取消。 此异常存储在返回的任务中。

注解

使用 CopyToAsync 方法可以执行资源密集型 I/O 操作,而无需阻止main线程。 此性能注意事项在桌面应用中尤其重要,因为耗时的流操作可能会阻止 UI 线程并使应用看起来好像不工作。 异步方法与 async Visual Basic 和 C# 中的 和 await 关键字结合使用。

如果在操作完成之前取消,则返回的任务将 TaskStatus.Canceled 包含 属性的值 Task.Status

复制从当前 GZip 流中的当前位置开始。

此方法存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 CopyTo(Stream, Int32)异常。

适用于