Stream.CopyToAsync Methode

Definitie

Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

Overloads

Name Description
CopyToAsync(Stream, Int32, CancellationToken)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

CopyToAsync(Stream, CancellationToken)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stream met behulp van een opgegeven annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

CopyToAsync(Stream)

Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

CopyToAsync(Stream, Int32)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

CopyToAsync(Stream, Int32, CancellationToken)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

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

Parameters

destination
Stream

De stroom waarnaar de inhoud van de huidige stream wordt gekopieerd.

bufferSize
Int32

De grootte, in bytes, van de buffer. Deze waarde moet groter zijn dan nul. De standaardgrootte is 81920.

cancellationToken
CancellationToken

Het token dat moet worden gecontroleerd op annuleringsaanvragen. De standaardwaarde is None.

Retouren

Een taak die de asynchrone kopieerbewerking vertegenwoordigt.

Kenmerken

Uitzonderingen

destination is null.

bufferSize is negatief of nul.

De huidige stroom of de doelstroom wordt verwijderd.

De huidige stream biedt geen ondersteuning voor lezen of de doelstroom biedt geen ondersteuning voor schrijven.

Het annuleringstoken is geannuleerd. Deze uitzondering wordt opgeslagen in de geretourneerde taak.

Opmerkingen

Met de CopyToAsync methode kunt u resource-intensieve I/O-bewerkingen uitvoeren zonder de hoofdthread te blokkeren. Deze prestatieoverweging is met name belangrijk in een Windows 8.x Store-app of -desktop-app, waarbij een tijdrovende streambewerking de UI-thread kan blokkeren en uw app kan weergeven alsof deze niet werkt. De asynchrone methoden worden gebruikt in combinatie met de trefwoorden async en await in Visual Basic en C#.

Als de bewerking wordt geannuleerd voordat deze is voltooid, bevat de geretourneerde taak de Canceled waarde voor de Status eigenschap.

Kopiëren begint op de huidige positie in de huidige stroom.

Zie de CopyToAsync(Stream) overbelasting voor een voorbeeld van het kopiëren tussen twee streams.

Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door CopyTo(Stream, Int32)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.

Van toepassing op

CopyToAsync(Stream, CancellationToken)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stream met behulp van een opgegeven annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

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

Parameters

destination
Stream

De stroom waarnaar de inhoud van de huidige stream wordt gekopieerd.

cancellationToken
CancellationToken

Het token dat moet worden gecontroleerd op annuleringsaanvragen. De standaardwaarde is None.

Retouren

Een taak die de asynchrone kopieerbewerking vertegenwoordigt.

Uitzonderingen

Het annuleringstoken is geannuleerd. Deze uitzondering wordt opgeslagen in de geretourneerde taak.

Opmerkingen

Met de CopyToAsync methode kunt u resource-intensieve I/O-bewerkingen uitvoeren zonder de hoofdthread te blokkeren. Deze prestatieoverweging is met name belangrijk in een Windows 8.x Store-app of -desktop-app, waarbij een tijdrovende streambewerking de UI-thread kan blokkeren en uw app kan weergeven alsof deze niet werkt. De asynchrone methoden worden gebruikt in combinatie met de trefwoorden async en await in Visual Basic en C#.

Als de bewerking wordt geannuleerd voordat deze is voltooid, bevat de geretourneerde taak de Canceled waarde voor de Status eigenschap.

Kopiëren begint op de huidige positie in de huidige stroom.

Zie de CopyToAsync(Stream) overbelasting voor een voorbeeld van het kopiëren tussen twee streams.

Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door CopyTo(Stream)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.

Van toepassing op

CopyToAsync(Stream)

Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

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

Parameters

destination
Stream

De stroom waarnaar de inhoud van de huidige stream wordt gekopieerd.

Retouren

Een taak die de asynchrone kopieerbewerking vertegenwoordigt.

Kenmerken

Uitzonderingen

destination is null.

De huidige stroom of de doelstroom wordt verwijderd.

De huidige stream biedt geen ondersteuning voor lezen of de doelstroom biedt geen ondersteuning voor schrijven.

Voorbeelden

In het volgende voorbeeld ziet u hoe u twee FileStream objecten gebruikt om de bestanden asynchroon van de ene map naar de andere te kopiëren. De FileStream klasse is afgeleid van de Stream klasse. U ziet dat de Click gebeurtenis-handler voor het Button besturingselement is gemarkeerd met de async wijzigingsfunctie omdat er een asynchrone methode wordt aangeroepen

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

Opmerkingen

Met de CopyToAsync methode kunt u resource-intensieve I/O-bewerkingen uitvoeren zonder de hoofdthread te blokkeren. Deze prestatieoverweging is met name belangrijk in een Windows 8.x Store-app of -desktop-app, waarbij een tijdrovende streambewerking de UI-thread kan blokkeren en uw app kan weergeven alsof deze niet werkt. De asynchrone methoden worden gebruikt in combinatie met de trefwoorden async en await in Visual Basic en C#.

Kopiëren begint op de huidige positie in de huidige stroom.

Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door CopyTo(Stream)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.

Van toepassing op

CopyToAsync(Stream, Int32)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

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

Parameters

destination
Stream

De stroom waarnaar de inhoud van de huidige stream wordt gekopieerd.

bufferSize
Int32

De grootte, in bytes, van de buffer. Deze waarde moet groter zijn dan nul. De standaardgrootte is 81920.

Retouren

Een taak die de asynchrone kopieerbewerking vertegenwoordigt.

Kenmerken

Uitzonderingen

destination is null.

bufferSize is negatief of nul.

De huidige stroom of de doelstroom wordt verwijderd.

De huidige stream biedt geen ondersteuning voor lezen of de doelstroom biedt geen ondersteuning voor schrijven.

Opmerkingen

Met de CopyToAsync methode kunt u resource-intensieve I/O-bewerkingen uitvoeren zonder de hoofdthread te blokkeren. Deze prestatieoverweging is met name belangrijk in een Windows 8.x Store-app of -desktop-app, waarbij een tijdrovende streambewerking de UI-thread kan blokkeren en uw app kan weergeven alsof deze niet werkt. De asynchrone methoden worden gebruikt in combinatie met de trefwoorden async en await in Visual Basic en C#.

Kopiëren begint op de huidige positie in de huidige stroom.

Zie de CopyToAsync(Stream) overbelasting voor een voorbeeld van het kopiëren tussen twee streams.

Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door CopyTo(Stream, Int32)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.

Van toepassing op