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

Définition

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.Asynchronously reads the bytes from the current stream and writes them to another stream.

Surcharges

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

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon et d'un jeton d'annulation spécifiés.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)

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux, en utilisant un jeton d’annulation spécifié.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)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.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)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon spécifiée.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)

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon et d'un jeton d'annulation spécifiés.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

Paramètres

destination
Stream Stream Stream Stream

Flux vers lequel le contenu du flux actuel sera copié.The stream to which the contents of the current stream will be copied.

bufferSize
Int32 Int32 Int32 Int32

Taille en octets de la mémoire tampon.The size, in bytes, of the buffer. Cette valeur doit être supérieure à zéro.This value must be greater than zero. La taille par défaut est 81920.The default size is 81920.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Jeton pour surveiller les requêtes d'annulation.The token to monitor for cancellation requests. La valeur par défaut est None.The default value is None.

Retours

Tâche qui représente l’opération de copie asynchrone.A task that represents the asynchronous copy operation.

Exceptions

buffersize est négatif ou égal à zéro.buffersize is negative or zero.

Le flux de données actuel ou le flux de données de destination est supprimé.Either the current stream or the destination stream is disposed.

Le flux de données actuel ne prend pas en charge la lecture, ou le flux de données de destination ne prend pas en charge l’écriture.The current stream does not support reading, or the destination stream does not support writing.

Remarques

Le CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Cette considération de performance est particulièrement importante dans une application Windows 8.x StoreWindows 8.x Store ou une application Bureaudesktop où une longue opération de flux peut bloquer le thread d'interface utilisateur et faire que l'application s'affiche comme si elle ne fonctionnait pas.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or Bureaudesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Les méthodes asynchrones sont utilisées conjointement avec la async et await mots clés dans Visual Basic et c#.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Si l’opération est annulée avant la fin, la tâche retournée contient le Canceled valeur pour le Status propriété.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

La copie commence à la position actuelle dans le flux actuel.Copying begins at the current position in the current stream.

Pour obtenir un exemple de copie entre deux flux de données, consultez le CopyToAsync(Stream) de surcharge.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

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

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux, en utilisant un jeton d’annulation spécifié.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

Paramètres

destination
Stream Stream Stream Stream

Flux vers lequel le contenu du flux actuel sera copié.The stream to which the contents of the current stream will be copied.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Jeton pour surveiller les requêtes d'annulation.The token to monitor for cancellation requests. La valeur par défaut est None.The default value is None.

Retours

Tâche qui représente l’opération de copie asynchrone.A task that represents the asynchronous copy operation.

Remarques

Le CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Cette considération de performance est particulièrement importante dans une application Windows 8.x StoreWindows 8.x Store ou une application Bureaudesktop où une longue opération de flux peut bloquer le thread d'interface utilisateur et faire que l'application s'affiche comme si elle ne fonctionnait pas.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or Bureaudesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Les méthodes asynchrones sont utilisées conjointement avec la async et await mots clés dans Visual Basic et c#.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

Si l’opération est annulée avant la fin, la tâche retournée contient le Canceled valeur pour le Status propriété.If the operation is canceled before it completes, the returned task contains the Canceled value for the Status property.

La copie commence à la position actuelle dans le flux actuel.Copying begins at the current position in the current stream.

Pour obtenir un exemple de copie entre deux flux de données, consultez le CopyToAsync(Stream) de surcharge.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

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

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.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

Paramètres

destination
Stream Stream Stream Stream

Flux vers lequel le contenu du flux actuel sera copié.The stream to which the contents of the current stream will be copied.

Retours

Tâche qui représente l’opération de copie asynchrone.A task that represents the asynchronous copy operation.

Exceptions

Le flux de données actuel ou le flux de données de destination est supprimé.Either the current stream or the destination stream is disposed.

Le flux de données actuel ne prend pas en charge la lecture, ou le flux de données de destination ne prend pas en charge l’écriture.The current stream does not support reading, or the destination stream does not support writing.

Exemples

L’exemple suivant montre comment utiliser deux FileStream objets à copier de façon asynchrone les fichiers d’un répertoire vers un autre.The following example demonstrates how to use two FileStream objects to asynchronously copy the files from one directory to another. La classe FileStream dérive de la classe Stream .The FileStream class derives from the Stream class. Notez que le Click Gestionnaire d’événements pour le Button contrôle est marqué avec le async modificateur parce qu’il appelle une méthode asynchroneNotice 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

Remarques

Le CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Cette considération de performance est particulièrement importante dans une application Windows 8.x StoreWindows 8.x Store ou une application Bureaudesktop où une longue opération de flux peut bloquer le thread d'interface utilisateur et faire que l'application s'affiche comme si elle ne fonctionnait pas.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or Bureaudesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Les méthodes asynchrones sont utilisées conjointement avec la async et await mots clés dans Visual Basic et c#.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

La copie commence à la position actuelle dans le flux actuel.Copying begins at the current position in the current stream.

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

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon spécifiée.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

Paramètres

destination
Stream Stream Stream Stream

Flux vers lequel le contenu du flux actuel sera copié.The stream to which the contents of the current stream will be copied.

bufferSize
Int32 Int32 Int32 Int32

Taille en octets de la mémoire tampon.The size, in bytes, of the buffer. Cette valeur doit être supérieure à zéro.This value must be greater than zero. La taille par défaut est 81920.The default size is 81920.

Retours

Tâche qui représente l’opération de copie asynchrone.A task that represents the asynchronous copy operation.

Exceptions

buffersize est négatif ou égal à zéro.buffersize is negative or zero.

Le flux de données actuel ou le flux de données de destination est supprimé.Either the current stream or the destination stream is disposed.

Le flux de données actuel ne prend pas en charge la lecture, ou le flux de données de destination ne prend pas en charge l’écriture.The current stream does not support reading, or the destination stream does not support writing.

Remarques

Le CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal.The CopyToAsync method enables you to perform resource-intensive I/O operations without blocking the main thread. Cette considération de performance est particulièrement importante dans une application Windows 8.x StoreWindows 8.x Store ou une application Bureaudesktop où une longue opération de flux peut bloquer le thread d'interface utilisateur et faire que l'application s'affiche comme si elle ne fonctionnait pas.This performance consideration is particularly important in a Windows 8.x StoreWindows 8.x Store app or Bureaudesktop app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. Les méthodes asynchrones sont utilisées conjointement avec la async et await mots clés dans Visual Basic et c#.The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

La copie commence à la position actuelle dans le flux actuel.Copying begins at the current position in the current stream.

Pour obtenir un exemple de copie entre deux flux de données, consultez le CopyToAsync(Stream) de surcharge.For an example of copying between two streams, see the CopyToAsync(Stream) overload.

S’applique à