Lire en anglais

Partager via


Stream.CopyToAsync Méthode

Définition

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés.

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. Les deux positions de flux sont avancées par le nombre d’octets copié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é. Les deux positions de flux sont avancées par le nombre d’octets copiés.

CopyToAsync(Stream)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés.

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. Les deux positions de flux sont avancées par le nombre d’octets copiés.

CopyToAsync(Stream, Int32, CancellationToken)

Source:
Stream.cs
Source:
Stream.cs
Source:
Stream.cs

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. Les deux positions de flux sont avancées par le nombre d’octets copiés.

C#
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);

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

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.

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

Remarques

La CopyToAsync méthode vous permet d’effectuer des opérations d’E/S nécessitant beaucoup de ressources sans bloquer le thread main. Cette considération de performance est particulièrement importante dans une application Windows 8.x Store ou une application de bureau 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. Les méthodes asynchrones sont utilisées conjointement avec les async mots clés et await dans Visual Basic et C#.

Si l’opération est annulée avant qu’elle ne se termine, la tâche retournée contient la Canceled valeur de la Status propriété.

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

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

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par CopyTo(Stream, Int32).

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CopyToAsync(Stream, CancellationToken)

Source:
Stream.cs
Source:
Stream.cs
Source:
Stream.cs

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é. Les deux positions de flux sont avancées par le nombre d’octets copiés.

C#
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, System.Threading.CancellationToken cancellationToken);

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

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

Exceptions

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

Remarques

La CopyToAsync méthode vous permet d’effectuer des opérations d’E/S nécessitant beaucoup de ressources sans bloquer le thread main. Cette considération de performance est particulièrement importante dans une application Windows 8.x Store ou une application de bureau 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. Les méthodes asynchrones sont utilisées conjointement avec les async mots clés et await dans Visual Basic et C#.

Si l’opération est annulée avant qu’elle ne se termine, la tâche retournée contient la Canceled valeur de la Status propriété.

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

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

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par CopyTo(Stream).

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

CopyToAsync(Stream)

Source:
Stream.cs
Source:
Stream.cs
Source:
Stream.cs

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés.

C#
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);

Paramètres

destination
Stream

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

Retours

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 du Button contrôle est marqué avec le async modificateur, car il appelle une méthode asynchrone

C#
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);
                    }
                }
            }
        }
    }
}

Remarques

La CopyToAsync méthode vous permet d’effectuer des opérations d’E/S nécessitant beaucoup de ressources sans bloquer le thread main. Cette considération de performance est particulièrement importante dans une application Windows 8.x Store ou une application de bureau 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. Les méthodes asynchrones sont utilisées conjointement avec les async mots clés et await dans Visual Basic et C#.

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

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par CopyTo(Stream).

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CopyToAsync(Stream, Int32)

Source:
Stream.cs
Source:
Stream.cs
Source:
Stream.cs

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. Les deux positions de flux sont avancées par le nombre d’octets copiés.

C#
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);

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

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 nécessitant beaucoup de ressources sans bloquer le thread main. Cette considération de performance est particulièrement importante dans une application Windows 8.x Store ou une application de bureau 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. Les méthodes asynchrones sont utilisées conjointement avec les async mots clés et await dans Visual Basic et C#.

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

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

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par CopyTo(Stream, Int32).

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0