Condividi tramite


FileStream.CopyToAsync(Stream, Int32, CancellationToken) Metodo

Definizione

Legge in modo asincrono i byte dal flusso di file corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata e un token di annullamento.

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

Parametri

destination
Stream

Flusso in cui verrà copiato il contenuto del flusso di file corrente.

bufferSize
Int32

Dimensione del buffer, in byte. Il valore deve essere maggiore di zero. La dimensione predefinita è 81920.

cancellationToken
CancellationToken

Token da monitorare per le richieste di annullamento. Il valore predefinito è None.

Restituisce

Attività che rappresenta l'operazione di copia asincrona.

Eccezioni

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Commenti

Il CopyToAsync metodo consente di eseguire operazioni di I/O a elevato utilizzo di risorse senza bloccare il thread principale. Questa considerazione sulle prestazioni è particolarmente importante in un'app Windows 8.x Store o un'app desktop in cui un'operazione di flusso che richiede tempo può bloccare il thread dell'interfaccia utente e rendere l'app come se non funzioni. I metodi asincroni vengono usati insieme alle async parole chiave e await in Visual Basic e C#.

Se l'operazione viene annullata prima del completamento, l'attività restituita contiene il TaskStatus.Canceled valore della Task.Status proprietà.

La copia inizia alla posizione corrente nel flusso di file corrente.

Per un esempio di copia tra due flussi, vedere l'overload CopyToAsync(Stream) .

Si applica a