Stream.CopyToAsync Metoda

Definicja

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu.Asynchronously reads the bytes from the current stream and writes them to another stream.

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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

CopyToAsync(Stream, CancellationToken)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego tokenu anulowania.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

CopyToAsync(Stream)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu.Asynchronously reads the bytes from the current stream and writes them to another stream.

CopyToAsync(Stream, Int32)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

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

Parametry

destination
Stream

Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.The stream to which the contents of the current stream will be copied.

bufferSize
Int32

Rozmiar bufora (w bajtach).The size, in bytes, of the buffer. Ta wartość musi być większa od zera.This value must be greater than zero. Domyślny rozmiar to 81920.The default size is 81920.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania.The token to monitor for cancellation requests. Wartość domyślna to None.The default value is None.

Zwraca

Zadanie, które reprezentuje asynchroniczną operację kopiowania.A task that represents the asynchronous copy operation.

Atrybuty

Wyjątki

destinationjest null.destination is null.

buffersizejest ujemna lub równa zero.buffersize is negative or zero.

Bieżący strumień lub strumień docelowy został usunięty.Either the current stream or the destination stream is disposed.

Bieżący strumień nie obsługuje odczytywania lub strumień docelowy nie obsługuje zapisu.The current stream does not support reading, or the destination stream does not support writing.

Uwagi

CopyToAsync Metoda umożliwia wykonywanie operacji We/Wy intensywnie obciążających zasoby bez blokowania wątku głównego.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Ten aspekt dotyczący wydajności jest szczególnie ważny w aplikacji Sklep Windows 8.xWindows 8.x Store lub aplikacjach komputer stacjonarnydesktop, gdzie czasochłonne operacje strumieniowe mogą zablokować wątek interfejsu użytkownika i spowodować, że aplikacja będzie wyglądać, jakby przestała działać.This performance consideration is particularly important in a Sklep Windows 8.xWindows 8.x Store app or komputer stacjonarnydesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Metody asynchroniczne są używane w połączeniu z async słowami kluczowymi i await w Visual Basic C#i.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Jeśli operacja zostanie anulowana przed zakończeniem, zwrócone zadanie zawiera Canceled wartość Status właściwości.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

Kopiowanie rozpoczyna się na bieżącym miejscu w bieżącym strumieniu.Copying begins at the current position in the current stream.

Aby zapoznać się z przykładem kopiowania między dwoma strumieniami CopyToAsync(Stream) , zapoznaj się z przeciążeniem.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

CopyToAsync(Stream, CancellationToken)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego tokenu anulowania.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

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

Parametry

destination
Stream

Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.The stream to which the contents of the current stream will be copied.

cancellationToken
CancellationToken

Token do monitorowania żądań anulowania.The token to monitor for cancellation requests. Wartość domyślna to None.The default value is None.

Zwraca

Zadanie, które reprezentuje asynchroniczną operację kopiowania.A task that represents the asynchronous copy operation.

Uwagi

CopyToAsync Metoda umożliwia wykonywanie operacji We/Wy intensywnie obciążających zasoby bez blokowania wątku głównego.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Ten aspekt dotyczący wydajności jest szczególnie ważny w aplikacji Sklep Windows 8.xWindows 8.x Store lub aplikacjach komputer stacjonarnydesktop, gdzie czasochłonne operacje strumieniowe mogą zablokować wątek interfejsu użytkownika i spowodować, że aplikacja będzie wyglądać, jakby przestała działać.This performance consideration is particularly important in a Sklep Windows 8.xWindows 8.x Store app or komputer stacjonarnydesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Metody asynchroniczne są używane w połączeniu z async słowami kluczowymi i await w Visual Basic C#i.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Jeśli operacja zostanie anulowana przed zakończeniem, zwrócone zadanie zawiera Canceled wartość Status właściwości.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

Kopiowanie rozpoczyna się na bieżącym miejscu w bieżącym strumieniu.Copying begins at the current position in the current stream.

Aby zapoznać się z przykładem kopiowania między dwoma strumieniami CopyToAsync(Stream) , zapoznaj się z przeciążeniem.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

CopyToAsync(Stream)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu.Asynchronously reads the bytes from the current stream and writes them to another stream.

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
Public Function CopyToAsync (destination As Stream) As Task

Parametry

destination
Stream

Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.The stream to which the contents of the current stream will be copied.

Zwraca

Zadanie, które reprezentuje asynchroniczną operację kopiowania.A task that represents the asynchronous copy operation.

Atrybuty

Wyjątki

destinationjest null.destination is null.

Bieżący strumień lub strumień docelowy został usunięty.Either the current stream or the destination stream is disposed.

Bieżący strumień nie obsługuje odczytywania lub strumień docelowy nie obsługuje zapisu.The current stream does not support reading, or the destination stream does not support writing.

Przykłady

Poniższy przykład ilustruje sposób używania dwóch FileStream obiektów do asynchronicznego kopiowania plików z jednego katalogu do drugiego.The following example demonstrates how to use two FileStream objects to asynchronously copy the files from one directory to another. FileStream Klasa pochodziStream od klasy.The FileStream class derives from the Stream class. Zauważ, że Click program obsługi zdarzeń Button dla kontrolki jest oznaczony modyfikatorem, async ponieważ wywołuje metodę asynchronicznąNotice that the Click event handler for the Button control is marked with the async modifier because it calls an asynchronous method

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

CopyToAsync Metoda umożliwia wykonywanie operacji We/Wy intensywnie obciążających zasoby bez blokowania wątku głównego.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Ten aspekt dotyczący wydajności jest szczególnie ważny w aplikacji Sklep Windows 8.xWindows 8.x Store lub aplikacjach komputer stacjonarnydesktop, gdzie czasochłonne operacje strumieniowe mogą zablokować wątek interfejsu użytkownika i spowodować, że aplikacja będzie wyglądać, jakby przestała działać.This performance consideration is particularly important in a Sklep Windows 8.xWindows 8.x Store app or komputer stacjonarnydesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Metody asynchroniczne są używane w połączeniu z async słowami kluczowymi i await w Visual Basic C#i.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Kopiowanie rozpoczyna się na bieżącym miejscu w bieżącym strumieniu.Copying begins at the current position in the current stream.

CopyToAsync(Stream, Int32)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

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
Public Function CopyToAsync (destination As Stream, bufferSize As Integer) As Task

Parametry

destination
Stream

Strumień, do którego zostanie skopiowana zawartość bieżącego strumienia.The stream to which the contents of the current stream will be copied.

bufferSize
Int32

Rozmiar bufora (w bajtach).The size, in bytes, of the buffer. Ta wartość musi być większa od zera.This value must be greater than zero. Domyślny rozmiar to 81920.The default size is 81920.

Zwraca

Zadanie, które reprezentuje asynchroniczną operację kopiowania.A task that represents the asynchronous copy operation.

Atrybuty

Wyjątki

destinationjest null.destination is null.

buffersizejest ujemna lub równa zero.buffersize is negative or zero.

Bieżący strumień lub strumień docelowy został usunięty.Either the current stream or the destination stream is disposed.

Bieżący strumień nie obsługuje odczytywania lub strumień docelowy nie obsługuje zapisu.The current stream does not support reading, or the destination stream does not support writing.

Uwagi

CopyToAsync Metoda umożliwia wykonywanie operacji We/Wy intensywnie obciążających zasoby bez blokowania wątku głównego.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Ten aspekt dotyczący wydajności jest szczególnie ważny w aplikacji Sklep Windows 8.xWindows 8.x Store lub aplikacjach komputer stacjonarnydesktop, gdzie czasochłonne operacje strumieniowe mogą zablokować wątek interfejsu użytkownika i spowodować, że aplikacja będzie wyglądać, jakby przestała działać.This performance consideration is particularly important in a Sklep Windows 8.xWindows 8.x Store app or komputer stacjonarnydesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Metody asynchroniczne są używane w połączeniu z async słowami kluczowymi i await w Visual Basic C#i.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Kopiowanie rozpoczyna się na bieżącym miejscu w bieżącym strumieniu.Copying begins at the current position in the current stream.

Aby zapoznać się z przykładem kopiowania między dwoma strumieniami CopyToAsync(Stream) , zapoznaj się z przeciążeniem.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

Dotyczy