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

定義

使用指定的緩衝區大小和取消語彙基元,以非同步方式從目前緩衝資料流讀取位元組,並將其寫入至另一個資料流。

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

要將目前緩衝資料流的內容複製到其中的資料流。

bufferSize
Int32

緩衝區的大小 (以位元組為單位)。 這個值必須大於零。 預設大小為 81920。

cancellationToken
CancellationToken

用來監視是否有取消要求的語彙基元。 預設值是 None

傳回

表示非同步複製作業的工作。

例外狀況

解除標記已取消。 此例外狀況會儲存在傳回的工作中。

備註

方法 CopyToAsync 可讓您執行耗用大量資源的 I/O 作業,而不會封鎖主執行緒。 這項效能考量對於 Windows 8.x Store 應用程式或傳統型應用程式而言特別重要,尤其是針對耗時的資料流作業可能會阻礙 UI 執行緒,使應用程式看起來像是停止運作的情況。 非同步方法會與 Visual Basic 和 C# 中的 和 await 關鍵字搭配 async 使用。

如果作業在完成之前取消,則傳回的工作會 Canceled 包含 屬性的值 Status

複製會從目前資料流程中的目前位置開始。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException 仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 CopyTo(Stream, Int32) 例外狀況。

適用於