Bagikan melalui


Stream.CopyToAsync Metode

Definisi

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

Overload

CopyToAsync(Stream, Int32, CancellationToken)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer dan token pembatalan tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

CopyToAsync(Stream, CancellationToken)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan token pembatalan tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

CopyToAsync(Stream)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

CopyToAsync(Stream, Int32)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

CopyToAsync(Stream, Int32, CancellationToken)

Sumber:
Stream.cs
Sumber:
Stream.cs
Sumber:
Stream.cs

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer dan token pembatalan tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

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

Parameter

destination
Stream

Aliran tempat konten aliran saat ini akan disalin.

bufferSize
Int32

Ukuran, dalam byte, dari buffer. Nilai ini harus lebih besar dari nol. Ukuran defaultnya adalah 81920.

cancellationToken
CancellationToken

Token yang akan dipantau untuk permintaan pembatalan. Nilai defaultnya adalah None.

Mengembalikan

Tugas yang mewakili operasi penyalinan asinkron.

Atribut

Pengecualian

destinationadalah null.

buffersize negatif atau nol.

Aliran saat ini atau aliran tujuan dibuang.

Aliran saat ini tidak mendukung pembacaan, atau aliran tujuan tidak mendukung penulisan.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Keterangan

Metode ini CopyToAsync memungkinkan Anda melakukan operasi I/O intensif sumber daya tanpa memblokir utas utama. Pertimbangan performa ini sangat penting dalam aplikasi Windows 8.x Store atau aplikasi desktop tempat operasi aliran yang memakan waktu dapat memblokir rangkaian UI dan membuat aplikasi tampak seolah-olah tidak berfungsi. Metode asinkron digunakan bersama dengan async kata kunci dan await di Visual Basic dan C#.

Jika operasi dibatalkan sebelum selesai, tugas yang dikembalikan berisi Canceled nilai untuk Status properti .

Penyalinan dimulai pada posisi saat ini di aliran saat ini.

Untuk contoh penyalinan antara dua aliran, lihat CopyToAsync(Stream) kelebihan beban.

Metode ini disimpan dalam tugas yang menampilkan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh CopyTo(Stream, Int32).

Berlaku untuk

CopyToAsync(Stream, CancellationToken)

Sumber:
Stream.cs
Sumber:
Stream.cs
Sumber:
Stream.cs

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan token pembatalan tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

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

Parameter

destination
Stream

Aliran tempat konten aliran saat ini akan disalin.

cancellationToken
CancellationToken

Token yang akan dipantau untuk permintaan pembatalan. Nilai defaultnya adalah None.

Mengembalikan

Tugas yang mewakili operasi penyalinan asinkron.

Pengecualian

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Keterangan

Metode ini CopyToAsync memungkinkan Anda melakukan operasi I/O intensif sumber daya tanpa memblokir utas utama. Pertimbangan performa ini sangat penting dalam aplikasi Windows 8.x Store atau aplikasi desktop tempat operasi aliran yang memakan waktu dapat memblokir rangkaian UI dan membuat aplikasi tampak seolah-olah tidak berfungsi. Metode asinkron digunakan bersama dengan async kata kunci dan await di Visual Basic dan C#.

Jika operasi dibatalkan sebelum selesai, tugas yang dikembalikan berisi Canceled nilai untuk Status properti .

Penyalinan dimulai pada posisi saat ini di aliran saat ini.

Untuk contoh penyalinan antara dua aliran, lihat CopyToAsync(Stream) kelebihan beban.

Metode ini disimpan dalam tugas yang menampilkan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh CopyTo(Stream).

Berlaku untuk

CopyToAsync(Stream)

Sumber:
Stream.cs
Sumber:
Stream.cs
Sumber:
Stream.cs

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

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

Parameter

destination
Stream

Aliran tempat konten aliran saat ini akan disalin.

Mengembalikan

Tugas yang mewakili operasi penyalinan asinkron.

Atribut

Pengecualian

destinationadalah null.

Aliran saat ini atau aliran tujuan dibuang.

Aliran saat ini tidak mendukung pembacaan, atau aliran tujuan tidak mendukung penulisan.

Contoh

Contoh berikut menunjukkan cara menggunakan dua FileStream objek untuk menyalin file secara asinkron dari satu direktori ke direktori lainnya. Kelas FileStream berasal dari kelas Stream. Perhatikan bahwa penanganan Click aktivitas untuk Button kontrol ditandai dengan pengubah async karena memanggil metode asinkron

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

Keterangan

Metode ini CopyToAsync memungkinkan Anda melakukan operasi I/O intensif sumber daya tanpa memblokir utas utama. Pertimbangan performa ini sangat penting dalam aplikasi Windows 8.x Store atau aplikasi desktop tempat operasi aliran yang memakan waktu dapat memblokir rangkaian UI dan membuat aplikasi tampak seolah-olah tidak berfungsi. Metode asinkron digunakan bersama dengan async kata kunci dan await di Visual Basic dan C#.

Penyalinan dimulai pada posisi saat ini di aliran saat ini.

Metode ini disimpan dalam tugas yang menampilkan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh CopyTo(Stream).

Berlaku untuk

CopyToAsync(Stream, Int32)

Sumber:
Stream.cs
Sumber:
Stream.cs
Sumber:
Stream.cs

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

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

Parameter

destination
Stream

Aliran tempat konten aliran saat ini akan disalin.

bufferSize
Int32

Ukuran, dalam byte, dari buffer. Nilai ini harus lebih besar dari nol. Ukuran defaultnya adalah 81920.

Mengembalikan

Tugas yang mewakili operasi penyalinan asinkron.

Atribut

Pengecualian

destinationadalah null.

buffersize negatif atau nol.

Aliran saat ini atau aliran tujuan dibuang.

Aliran saat ini tidak mendukung pembacaan, atau aliran tujuan tidak mendukung penulisan.

Keterangan

Metode ini CopyToAsync memungkinkan Anda melakukan operasi I/O intensif sumber daya tanpa memblokir utas utama. Pertimbangan performa ini sangat penting dalam aplikasi Windows 8.x Store atau aplikasi desktop tempat operasi aliran yang memakan waktu dapat memblokir rangkaian UI dan membuat aplikasi tampak seolah-olah tidak berfungsi. Metode asinkron digunakan bersama dengan async kata kunci dan await di Visual Basic dan C#.

Penyalinan dimulai pada posisi saat ini di aliran saat ini.

Untuk contoh penyalinan antara dua aliran, lihat CopyToAsync(Stream) kelebihan beban.

Metode ini disimpan dalam tugas yang menampilkan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh CopyTo(Stream, Int32).

Berlaku untuk