Stream.CopyToAsync Método

Definición

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.Asynchronously reads the bytes from the current stream and writes them to another stream.

Sobrecargas

CopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer y el token de cancelación especificados.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)

Lee de forma asincrónica los bytes de la secuencia actual y los escribe en otra secuencia mediante un token de cancelación especificado.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

CopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.Asynchronously reads the bytes from the current stream and writes them to another stream.

CopyToAsync(Stream, Int32)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

CopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer y el token de cancelación especificados.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

Parámetros

destination
Stream

Secuencia en la que se copiará el contenido de la secuencia actual.The stream to which the contents of the current stream will be copied.

bufferSize
Int32

Tamaño del búfer en bytes.The size, in bytes, of the buffer. Este valor debe ser mayor que cero.This value must be greater than zero. El tamaño predeterminado es 81920.The default size is 81920.

cancellationToken
CancellationToken

Token para supervisar solicitudes de cancelación.The token to monitor for cancellation requests. El valor predeterminado es None.The default value is None.

Devoluciones

Tarea que representa la operación de copia asincrónica.A task that represents the asynchronous copy operation.

Atributos

Excepciones

destination es null.destination is null.

buffersize es un valor negativo o es cero.buffersize is negative or zero.

Se desecha la secuencia actual o la secuencia de destino.Either the current stream or the destination stream is disposed.

La secuencia actual no admite lectura o la secuencia de destino no admite escritura.The current stream does not support reading, or the destination stream does not support writing.

Comentarios

El CopyToAsync método le permite realizar operaciones de e/s con un uso intensivo de recursos sin bloquear el subproceso principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.xWindows 8.x Store o una aplicación de escritoriodesktop en que una operación de streaming prolongada puede bloquear el subproceso de interfaz de usuario y hacer que parezca que una aplicación ha dejado de responder.This performance consideration is particularly important in a Tienda Windows 8.xWindows 8.x Store app or escritoriodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Los métodos asincrónicos se utilizan junto con las async palabras await clave y en Visual Basic C#y.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Si la operación se cancela antes de que se complete, la tarea devuelta contiene Canceled el valor de Status la propiedad.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

La copia comienza en la posición actual de la secuencia actual.Copying begins at the current position in the current stream.

Para obtener un ejemplo de copia entre dos flujos, vea CopyToAsync(Stream) la sobrecarga.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

CopyToAsync(Stream, CancellationToken)

Lee de forma asincrónica los bytes de la secuencia actual y los escribe en otra secuencia mediante un token de cancelación especificado.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

Parámetros

destination
Stream

Secuencia en la que se copiará el contenido de la secuencia actual.The stream to which the contents of the current stream will be copied.

cancellationToken
CancellationToken

Token para supervisar solicitudes de cancelación.The token to monitor for cancellation requests. El valor predeterminado es None.The default value is None.

Devoluciones

Tarea que representa la operación de copia asincrónica.A task that represents the asynchronous copy operation.

Comentarios

El CopyToAsync método le permite realizar operaciones de e/s con un uso intensivo de recursos sin bloquear el subproceso principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.xWindows 8.x Store o una aplicación de escritoriodesktop en que una operación de streaming prolongada puede bloquear el subproceso de interfaz de usuario y hacer que parezca que una aplicación ha dejado de responder.This performance consideration is particularly important in a Tienda Windows 8.xWindows 8.x Store app or escritoriodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Los métodos asincrónicos se utilizan junto con las async palabras await clave y en Visual Basic C#y.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Si la operación se cancela antes de que se complete, la tarea devuelta contiene Canceled el valor de Status la propiedad.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

La copia comienza en la posición actual de la secuencia actual.Copying begins at the current position in the current stream.

Para obtener un ejemplo de copia entre dos flujos, vea CopyToAsync(Stream) la sobrecarga.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

CopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.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

Parámetros

destination
Stream

Secuencia en la que se copiará el contenido de la secuencia actual.The stream to which the contents of the current stream will be copied.

Devoluciones

Tarea que representa la operación de copia asincrónica.A task that represents the asynchronous copy operation.

Atributos

Excepciones

destination es null.destination is null.

Se desecha la secuencia actual o la secuencia de destino.Either the current stream or the destination stream is disposed.

La secuencia actual no admite lectura o la secuencia de destino no admite escritura.The current stream does not support reading, or the destination stream does not support writing.

Ejemplos

En el ejemplo siguiente se muestra cómo usar FileStream dos objetos para copiar asincrónicamente los archivos de un directorio a otro.The following example demonstrates how to use two FileStream objects to asynchronously copy the files from one directory to another. La clase FileStream se deriva de la clase Stream .The FileStream class derives from the Stream class. Observe que el Click controlador de eventos para Button el control está marcado con async el modificador porque llama a un método asincrónico.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

Comentarios

El CopyToAsync método le permite realizar operaciones de e/s con un uso intensivo de recursos sin bloquear el subproceso principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.xWindows 8.x Store o una aplicación de escritoriodesktop en que una operación de streaming prolongada puede bloquear el subproceso de interfaz de usuario y hacer que parezca que una aplicación ha dejado de responder.This performance consideration is particularly important in a Tienda Windows 8.xWindows 8.x Store app or escritoriodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Los métodos asincrónicos se utilizan junto con las async palabras await clave y en Visual Basic C#y.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

La copia comienza en la posición actual de la secuencia actual.Copying begins at the current position in the current stream.

CopyToAsync(Stream, Int32)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.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

Parámetros

destination
Stream

Secuencia en la que se copiará el contenido de la secuencia actual.The stream to which the contents of the current stream will be copied.

bufferSize
Int32

Tamaño del búfer en bytes.The size, in bytes, of the buffer. Este valor debe ser mayor que cero.This value must be greater than zero. El tamaño predeterminado es 81920.The default size is 81920.

Devoluciones

Tarea que representa la operación de copia asincrónica.A task that represents the asynchronous copy operation.

Atributos

Excepciones

destination es null.destination is null.

buffersize es un valor negativo o es cero.buffersize is negative or zero.

Se desecha la secuencia actual o la secuencia de destino.Either the current stream or the destination stream is disposed.

La secuencia actual no admite lectura o la secuencia de destino no admite escritura.The current stream does not support reading, or the destination stream does not support writing.

Comentarios

El CopyToAsync método le permite realizar operaciones de e/s con un uso intensivo de recursos sin bloquear el subproceso principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.xWindows 8.x Store o una aplicación de escritoriodesktop en que una operación de streaming prolongada puede bloquear el subproceso de interfaz de usuario y hacer que parezca que una aplicación ha dejado de responder.This performance consideration is particularly important in a Tienda Windows 8.xWindows 8.x Store app or escritoriodesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Los métodos asincrónicos se utilizan junto con las async palabras await clave y en Visual Basic C#y.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

La copia comienza en la posición actual de la secuencia actual.Copying begins at the current position in the current stream.

Para obtener un ejemplo de copia entre dos flujos, vea CopyToAsync(Stream) la sobrecarga.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

Se aplica a