Stream.CopyToAsync Méthode

Définition

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.

Surcharges

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.

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é.

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.

CopyToAsync(Stream)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.

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.

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

Paramètres

destination
Stream

Flux vers lequel le contenu du flux actuel sera copié.

bufferSize
Int32

Taille en octets de la mémoire tampon. Cette valeur doit être supérieure à zéro. La taille par défaut est 81920.

cancellationToken
CancellationToken

Jeton pour surveiller les requêtes d'annulation. La valeur par défaut est None.

Retours

Task

Tâche qui représente l’opération de copie asynchrone.

Attributs

Exceptions

destination a la valeur null.

buffersize est négatif ou égal à zéro.

Le flux de données actuel ou le flux de données de destination est supprimé.

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.

Remarques

La CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

Si l’opération est annulée avant d’être terminée, la tâche retournée contient la Canceled valeur de la Status propriété.

La copie commence à la position actuelle dans le flux actuel.

Pour obtenir un exemple de copie entre deux flux, consultez la CopyToAsync(Stream) surcharge.

S’applique à

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é.

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

Paramètres

destination
Stream

Flux vers lequel le contenu du flux actuel sera copié.

cancellationToken
CancellationToken

Jeton pour surveiller les requêtes d'annulation. La valeur par défaut est None.

Retours

Task

Tâche qui représente l’opération de copie asynchrone.

Remarques

La CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

Si l’opération est annulée avant d’être terminée, la tâche retournée contient la Canceled valeur de la Status propriété.

La copie commence à la position actuelle dans le flux actuel.

Pour obtenir un exemple de copie entre deux flux, consultez la CopyToAsync(Stream) surcharge.

S’applique à

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.

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

Paramètres

destination
Stream

Flux vers lequel le contenu du flux actuel sera copié.

bufferSize
Int32

Taille en octets de la mémoire tampon. Cette valeur doit être supérieure à zéro. La taille par défaut est 81920.

Retours

Task

Tâche qui représente l’opération de copie asynchrone.

Attributs

Exceptions

destination a la valeur null.

buffersize est négatif ou égal à zéro.

Le flux de données actuel ou le flux de données de destination est supprimé.

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.

Remarques

La CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

La copie commence à la position actuelle dans le flux actuel.

Pour obtenir un exemple de copie entre deux flux, consultez la CopyToAsync(Stream) surcharge.

S’applique à

CopyToAsync(Stream)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.

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

Paramètres

destination
Stream

Flux vers lequel le contenu du flux actuel sera copié.

Retours

Task

Tâche qui représente l’opération de copie asynchrone.

Attributs

Exceptions

destination a la valeur null.

Le flux de données actuel ou le flux de données de destination est supprimé.

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.

Exemples

L’exemple suivant montre comment utiliser deux FileStream objets pour copier de manière asynchrone les fichiers d’un répertoire vers un autre. La classe FileStream dérive de la classe Stream . Notez que le Click Gestionnaire d’événements pour le Button contrôle est marqué avec le async modificateur car il appelle une méthode asynchrone

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

La CopyToAsync méthode vous permet d’effectuer des opérations d’e/s gourmandes en ressources sans bloquer le thread principal. cette considération de performance est particulièrement importante dans une application de bureau ou une application de bureau Windows 8. x dans laquelle une opération de flux fastidieux peut bloquer le thread d’interface utilisateur et faire apparaître votre application comme si elle ne fonctionnait pas. les méthodes async sont utilisées conjointement avec les async await mots clés et dans Visual Basic et C#.

La copie commence à la position actuelle dans le flux actuel.

S’applique à