Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Stream.CopyToAsync (Método) (Stream)

.NET Framework 4.5

Lee asincrónicamente todos los bytes de la secuencia actual y los escribe en otra secuencia.

Espacio de nombres:  System.IO
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(false)]
[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public Task CopyToAsync(
	Stream destination
)

Parámetros

destination
Tipo: System.IO.Stream
Secuencia en la que se copiará el contenido de la secuencia actual.

Valor devuelto

Tipo: System.Threading.Tasks.Task
Tarea que representa la operación de copia asincrónica.

ExcepciónCondición
ArgumentNullException

destination es null.

ObjectDisposedException

Se desecha la secuencia actual o la secuencia de destino.

NotSupportedException

La secuencia actual no admite lectura o la secuencia de destino no admite escritura.

El método CopyToAsync permite realizar operaciones de E/S consumir muchos recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de Tienda Windows o la aplicación escritorio donde una operación larga de la secuencia puede bloquear el subproceso de interfaz de usuario y que aparece la aplicación como si no funciona. Los métodos de async se usan junto con las palabras clave async y await de Visual Basic y C#.

La copia empieza en la posición actual de la secuencia actual.

NotaNota

El atributo HostProtectionAttribute aplicado a este tipo o miembro tiene el valor de propiedad Resources siguiente: ExternalThreading. El atributo HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician haciendo doble clic en un icono, escribiendo un comando o introduciendo una dirección URL en el explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación en SQL Server y atributos de protección de host.

El ejemplo siguiente muestra cómo utilizar dos objetos FileStream de forma asincrónica para copiar los archivos de un directorio a otro. La clase FileStream se deriva de la clase Stream. Observe que marcan el controlador de eventos Click para el control Button con el modificador async 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);
                    }
                }
            }
        }
    }
}


.NET Framework

Compatible con: 4.5

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft