Stream.CopyToAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.
Przeciążenia
CopyToAsync(Stream, Int32, CancellationToken) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu i tokenu anulowania. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. |
CopyToAsync(Stream, CancellationToken) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego tokenu anulowania. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. |
CopyToAsync(Stream) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. |
CopyToAsync(Stream, Int32) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. |
CopyToAsync(Stream, Int32, CancellationToken)
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu i tokenu anulowania. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.
public:
virtual System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, int bufferSize, System::Threading::CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
abstract member CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
override this.CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
override this.CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Overridable 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 strumienia.
- bufferSize
- Int32
Rozmiar buforu w bajtach. Ta wartość musi być większa niż zero. Domyślny rozmiar to 81920.
- cancellationToken
- CancellationToken
Token do monitorowania żądań anulowania. Wartość domyślna to None.
Zwraca
Zadanie reprezentujące operację kopiowania asynchronicznego.
- Atrybuty
Wyjątki
destination
to null
.
buffersize
jest ujemna lub zero.
Bieżący strumień lub docelowy strumień jest usuwany.
Bieżący strumień nie obsługuje odczytu lub strumień docelowy nie obsługuje zapisu.
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.
Aby zapoznać się z przykładem kopiowania między dwoma strumieniami, zobacz CopyToAsync(Stream) przeciążenie.
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
CopyToAsync(Stream, CancellationToken)
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego tokenu anulowania. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.
public:
System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, System.Threading.CancellationToken cancellationToken);
member this.CopyToAsync : System.IO.Stream * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function CopyToAsync (destination As Stream, cancellationToken As CancellationToken) As Task
Parametry
- destination
- Stream
Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.
- 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.
Aby zapoznać się z przykładem kopiowania między dwoma strumieniami, zobacz CopyToAsync(Stream) przeciążenie.
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)usługę .
Dotyczy
CopyToAsync(Stream)
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.
public:
System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination);
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);
member this.CopyToAsync : System.IO.Stream -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CopyToAsync : System.IO.Stream -> System.Threading.Tasks.Task
Public Function CopyToAsync (destination As Stream) As Task
Parametry
- destination
- Stream
Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.
Zwraca
Zadanie reprezentujące operację kopiowania asynchronicznego.
- Atrybuty
Wyjątki
destination
to null
.
Bieżący strumień lub docelowy strumień jest usuwany.
Bieżący strumień nie obsługuje odczytu lub strumień docelowy nie obsługuje zapisu.
Przykłady
W poniższym przykładzie pokazano, jak używać dwóch FileStream obiektów do asynchronicznego kopiowania plików z jednego katalogu do innego. Klasa FileStream pochodzi z Stream klasy . Zwróć uwagę, że Click procedura obsługi zdarzeń kontrolki Button jest oznaczona modyfikatorem, async
ponieważ wywołuje metodę asynchroniczną
using System;
using System.Threading.Tasks;
using System.Windows;
using System.IO;
namespace WpfApplication
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
string StartDirectory = @"c:\Users\exampleuser\start";
string EndDirectory = @"c:\Users\exampleuser\end";
foreach (string filename in Directory.EnumerateFiles(StartDirectory))
{
using (FileStream SourceStream = File.Open(filename, FileMode.Open))
{
using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\'))))
{
await SourceStream.CopyToAsync(DestinationStream);
}
}
}
}
}
}
Imports System.IO
Class MainWindow
Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim StartDirectory As String = "c:\Users\exampleuser\start"
Dim EndDirectory As String = "c:\Users\exampleuser\end"
For Each filename As String In Directory.EnumerateFiles(StartDirectory)
Using SourceStream As FileStream = File.Open(filename, FileMode.Open)
Using DestinationStream As FileStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf("\"c)))
Await SourceStream.CopyToAsync(DestinationStream)
End Using
End Using
Next
End Sub
End Class
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#.
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)usługę .
Dotyczy
CopyToAsync(Stream, Int32)
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.
public:
System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, int bufferSize);
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);
member this.CopyToAsync : System.IO.Stream * int -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CopyToAsync : System.IO.Stream * int -> System.Threading.Tasks.Task
Public Function CopyToAsync (destination As Stream, bufferSize As Integer) As Task
Parametry
- destination
- Stream
Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.
- bufferSize
- Int32
Rozmiar buforu w bajtach. Ta wartość musi być większa niż zero. Domyślny rozmiar to 81920.
Zwraca
Zadanie reprezentujące operację kopiowania asynchronicznego.
- Atrybuty
Wyjątki
destination
to null
.
buffersize
jest ujemna lub zero.
Bieżący strumień lub docelowy strumień jest usuwany.
Bieżący strumień nie obsługuje odczytu lub strumień docelowy nie obsługuje zapisu.
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#.
Kopiowanie rozpoczyna się od bieżącego położenia w bieżącym strumieniu.
Aby zapoznać się z przykładem kopiowania między dwoma strumieniami, zobacz CopyToAsync(Stream) przeciążenie.
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ę .