Udostępnij za pośrednictwem


BufferedStream.CopyToAsync(Stream, Int32, CancellationToken) Metoda

Definicja

Asynchronicznie odczytuje bajty z bieżącego buforowanego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu i tokenu anulowania.

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

Parametry

destination
Stream

Strumień, do którego zostanie skopiowana zawartość bieżącego buforowanego strumienia.

bufferSize
Int32

Rozmiar buforu w bajtach. Ta wartość musi być większa niż zero. Domyślnym rozmiarem jest 81920.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania. Wartość domyślna to None.

Zwraca

Zadanie reprezentujące operację kopiowania asynchronicznego.

Wyjątki

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.

Uwagi

Metoda CopyToAsync umożliwia wykonywanie operacji we/wy intensywnie korzystających z zasobów bez blokowania głównego wątku. Ta kwestia wydajności jest szczególnie ważna w aplikacji ze sklepu Windows 8.x lub aplikacji klasycznej, w której czasochłonna operacja strumienia może zablokować wątek interfejsu użytkownika i sprawić, że aplikacja będzie wyświetlana tak, jakby nie działała. Metody asynchroniczne są używane w połączeniu ze słowami async kluczowymi i await w języku Visual Basic i C#.

Jeśli operacja zostanie anulowana przed jej zakończeniem, zwrócone zadanie zawiera Canceled wartość właściwości Status .

Kopiowanie rozpoczyna się od bieżącego położenia w bieżącym strumieniu.

Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez CopyTo(Stream, Int32)usługę .

Dotyczy