Stream.CopyToAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.
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. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados. |
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. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados. |
CopyToAsync(Stream) |
Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados. |
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. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados. |
CopyToAsync(Stream, Int32, CancellationToken)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
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. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.
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
Parámetros
- destination
- Stream
Secuencia en la que se copiará el contenido de la secuencia actual.
- bufferSize
- Int32
Tamaño del búfer en bytes. Este valor debe ser mayor que cero. El tamaño predeterminado es 81920.
- cancellationToken
- CancellationToken
Token para supervisar solicitudes de cancelación. El valor predeterminado es None.
Devoluciones
Tarea que representa la operación de copia asincrónica.
- Atributos
Excepciones
destination
es null
.
buffersize
es un valor negativo o es cero.
Se desecha la secuencia actual o la secuencia de destino.
La secuencia actual no admite lectura o la secuencia de destino no admite escritura.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Comentarios
El CopyToAsync método permite realizar operaciones de E/S intensivas en recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.x o una aplicación de escritorio 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. Los métodos asincrónicos se usan junto con las async
palabras clave y await
en Visual Basic y C#.
Si la operación se cancela antes de que finalice, la tarea devuelta contiene el Canceled valor de la Status propiedad .
La copia comienza en la posición actual de la secuencia actual.
Para obtener un ejemplo de copia entre dos secuencias, consulte la CopyToAsync(Stream) sobrecarga.
Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, se siguen iniciando de forma sincrónica. Para ver las excepciones almacenadas, consulte las excepciones producidas por CopyTo(Stream, Int32).
Se aplica a
CopyToAsync(Stream, CancellationToken)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
Lee de forma asincrónica los bytes de la secuencia actual y los escribe en otra secuencia mediante un token de cancelación especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.
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
Parámetros
- destination
- Stream
Secuencia en la que se copiará el contenido de la secuencia actual.
- cancellationToken
- CancellationToken
Token para supervisar solicitudes de cancelación. El valor predeterminado es None.
Devoluciones
Tarea que representa la operación de copia asincrónica.
Excepciones
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Comentarios
El CopyToAsync método permite realizar operaciones de E/S intensivas en recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.x o una aplicación de escritorio 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. Los métodos asincrónicos se usan junto con las async
palabras clave y await
en Visual Basic y C#.
Si la operación se cancela antes de que finalice, la tarea devuelta contiene el Canceled valor de la Status propiedad .
La copia comienza en la posición actual de la secuencia actual.
Para obtener un ejemplo de copia entre dos secuencias, consulte la CopyToAsync(Stream) sobrecarga.
Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, se siguen iniciando de forma sincrónica. Para ver las excepciones almacenadas, consulte las excepciones producidas por CopyTo(Stream).
Se aplica a
CopyToAsync(Stream)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.
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
Parámetros
- destination
- Stream
Secuencia en la que se copiará el contenido de la secuencia actual.
Devoluciones
Tarea que representa la operación de copia asincrónica.
- Atributos
Excepciones
destination
es null
.
Se desecha la secuencia actual o la secuencia de destino.
La secuencia actual no admite lectura o la secuencia de destino no admite escritura.
Ejemplos
En el ejemplo siguiente se muestra cómo usar dos FileStream objetos para copiar de forma asincrónica los archivos de un directorio a otro. La clase FileStream se deriva de la clase Stream . Observe que el Click controlador de eventos del Button control se marca con el async
modificador porque llama a un método asincrónico
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 permite realizar operaciones de E/S intensivas en recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.x o una aplicación de escritorio 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. Los métodos asincrónicos se usan junto con las async
palabras clave y await
en Visual Basic y C#.
La copia comienza en la posición actual de la secuencia actual.
Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, se siguen iniciando de forma sincrónica. Para ver las excepciones almacenadas, consulte las excepciones producidas por CopyTo(Stream).
Se aplica a
CopyToAsync(Stream, Int32)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.
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
Parámetros
- destination
- Stream
Secuencia en la que se copiará el contenido de la secuencia actual.
- bufferSize
- Int32
Tamaño del búfer en bytes. Este valor debe ser mayor que cero. El tamaño predeterminado es 81920.
Devoluciones
Tarea que representa la operación de copia asincrónica.
- Atributos
Excepciones
destination
es null
.
buffersize
es un valor negativo o es cero.
Se desecha la secuencia actual o la secuencia de destino.
La secuencia actual no admite lectura o la secuencia de destino no admite escritura.
Comentarios
El CopyToAsync método permite realizar operaciones de E/S intensivas en recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.x o una aplicación de escritorio 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. Los métodos asincrónicos se usan junto con las async
palabras clave y await
en Visual Basic y C#.
La copia comienza en la posición actual de la secuencia actual.
Para obtener un ejemplo de copia entre dos secuencias, consulte la CopyToAsync(Stream) sobrecarga.
Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, se siguen iniciando de forma sincrónica. Para ver las excepciones almacenadas, consulte las excepciones producidas por CopyTo(Stream, Int32).