Stream.CopyToAsync Stream.CopyToAsync Stream.CopyToAsync Stream.CopyToAsync Method

Definizione

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso.Asynchronously reads the bytes from the current stream and writes them to another stream.

Overload

CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata e un token di annullamento.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) CopyToAsync(Stream, CancellationToken) CopyToAsync(Stream, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando un token di annullamento specificato.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

CopyToAsync(Stream) CopyToAsync(Stream) CopyToAsync(Stream) CopyToAsync(Stream)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso.Asynchronously reads the bytes from the current stream and writes them to another stream.

CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32)

Legge in modo asincrono tutti i byte dal flusso corrente e li scrive in un altro flusso, utilizzando una dimensione di buffer specificata.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata e un token di annullamento.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

Parametri

destination
Stream Stream Stream Stream

Flusso in cui verrà copiato il contenuto del flusso corrente.The stream to which the contents of the current stream will be copied.

bufferSize
Int32 Int32 Int32 Int32

Dimensione del buffer, in byte.The size, in bytes, of the buffer. Il valore deve essere maggiore di zero.This value must be greater than zero. La dimensione predefinita è 81920.The default size is 81920.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Token da monitorare per le richieste di annullamento.The token to monitor for cancellation requests. Il valore predefinito è None.The default value is None.

Restituisce

Attività che rappresenta l'operazione di copia asincrona.A task that represents the asynchronous copy operation.

Eccezioni

buffersize è un valore negativo o zero.buffersize is negative or zero.

Il flusso corrente o il flusso di destinazione viene eliminato.Either the current stream or the destination stream is disposed.

Il flusso corrente non supporta la lettura, o il flusso di destinazione non supporta la scrittura.The current stream does not support reading, or the destination stream does not support writing.

Commenti

Il CopyToAsync metodo consente di eseguire operazioni di i/O a elevato utilizzo di risorse senza bloccare il thread principale.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Questa considerazione sulle prestazioni è particolarmente importante in un'applicazione Windows 8.x StoreWindows 8.x Store o desktopdesktop in cui tramite un'operazione di flusso per cui è richiesto molto tempo è possibile bloccare il thread UI e far sembrare che l'applicazione non funzioni.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or desktopdesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. I metodi asincroni vengono usati insieme async alle parole chiave e await in Visual Basic e. C#The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Se l'operazione viene annullata prima del completamento, l'attività restituita Canceled contiene il valore Status per la proprietà.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

La copia inizia in corrispondenza della posizione corrente nel flusso corrente.Copying begins at the current position in the current stream.

Per un esempio di copia tra due flussi, vedere l' CopyToAsync(Stream) overload.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

CopyToAsync(Stream, CancellationToken) CopyToAsync(Stream, CancellationToken) CopyToAsync(Stream, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando un token di annullamento specificato.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

Parametri

destination
Stream Stream Stream Stream

Flusso in cui verrà copiato il contenuto del flusso corrente.The stream to which the contents of the current stream will be copied.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Token da monitorare per le richieste di annullamento.The token to monitor for cancellation requests. Il valore predefinito è None.The default value is None.

Restituisce

Attività che rappresenta l'operazione di copia asincrona.A task that represents the asynchronous copy operation.

Commenti

Il CopyToAsync metodo consente di eseguire operazioni di i/O a elevato utilizzo di risorse senza bloccare il thread principale.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Questa considerazione sulle prestazioni è particolarmente importante in un'applicazione Windows 8.x StoreWindows 8.x Store o desktopdesktop in cui tramite un'operazione di flusso per cui è richiesto molto tempo è possibile bloccare il thread UI e far sembrare che l'applicazione non funzioni.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or desktopdesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. I metodi asincroni vengono usati insieme async alle parole chiave e await in Visual Basic e. C#The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Se l'operazione viene annullata prima del completamento, l'attività restituita Canceled contiene il valore Status per la proprietà.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

La copia inizia in corrispondenza della posizione corrente nel flusso corrente.Copying begins at the current position in the current stream.

Per un esempio di copia tra due flussi, vedere l' CopyToAsync(Stream) overload.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

CopyToAsync(Stream) CopyToAsync(Stream) CopyToAsync(Stream) CopyToAsync(Stream)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso.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

Parametri

destination
Stream Stream Stream Stream

Flusso in cui verrà copiato il contenuto del flusso corrente.The stream to which the contents of the current stream will be copied.

Restituisce

Attività che rappresenta l'operazione di copia asincrona.A task that represents the asynchronous copy operation.

Eccezioni

Il flusso corrente o il flusso di destinazione viene eliminato.Either the current stream or the destination stream is disposed.

Il flusso corrente non supporta la lettura, o il flusso di destinazione non supporta la scrittura.The current stream does not support reading, or the destination stream does not support writing.

Esempi

Nell'esempio seguente viene illustrato come usare due FileStream oggetti per copiare i file in modo asincrono da una directory a un'altra.The following example demonstrates how to use two FileStream objects to asynchronously copy the files from one directory to another. La classe FileStream deriva dalla classe Stream .The FileStream class derives from the Stream class. Si noti che Click il gestore eventi per Button il controllo è contrassegnato con async il modificatore perché chiama un metodo asincronoNotice 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

Commenti

Il CopyToAsync metodo consente di eseguire operazioni di i/O a elevato utilizzo di risorse senza bloccare il thread principale.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Questa considerazione sulle prestazioni è particolarmente importante in un'applicazione Windows 8.x StoreWindows 8.x Store o desktopdesktop in cui tramite un'operazione di flusso per cui è richiesto molto tempo è possibile bloccare il thread UI e far sembrare che l'applicazione non funzioni.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or desktopdesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. I metodi asincroni vengono usati insieme async alle parole chiave e await in Visual Basic e. C#The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

La copia inizia in corrispondenza della posizione corrente nel flusso corrente.Copying begins at the current position in the current stream.

CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32)

Legge in modo asincrono tutti i byte dal flusso corrente e li scrive in un altro flusso, utilizzando una dimensione di buffer specificata.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

Parametri

destination
Stream Stream Stream Stream

Flusso in cui verrà copiato il contenuto del flusso corrente.The stream to which the contents of the current stream will be copied.

bufferSize
Int32 Int32 Int32 Int32

Dimensione del buffer, in byte.The size, in bytes, of the buffer. Il valore deve essere maggiore di zero.This value must be greater than zero. La dimensione predefinita è 81920.The default size is 81920.

Restituisce

Attività che rappresenta l'operazione di copia asincrona.A task that represents the asynchronous copy operation.

Eccezioni

buffersize è un valore negativo o zero.buffersize is negative or zero.

Il flusso corrente o il flusso di destinazione viene eliminato.Either the current stream or the destination stream is disposed.

Il flusso corrente non supporta la lettura, o il flusso di destinazione non supporta la scrittura.The current stream does not support reading, or the destination stream does not support writing.

Commenti

Il CopyToAsync metodo consente di eseguire operazioni di i/O a elevato utilizzo di risorse senza bloccare il thread principale.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Questa considerazione sulle prestazioni è particolarmente importante in un'applicazione Windows 8.x StoreWindows 8.x Store o desktopdesktop in cui tramite un'operazione di flusso per cui è richiesto molto tempo è possibile bloccare il thread UI e far sembrare che l'applicazione non funzioni.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or desktopdesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. I metodi asincroni vengono usati insieme async alle parole chiave e await in Visual Basic e. C#The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

La copia inizia in corrispondenza della posizione corrente nel flusso corrente.Copying begins at the current position in the current stream.

Per un esempio di copia tra due flussi, vedere l' CopyToAsync(Stream) overload.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

Si applica a