Stream.CopyToAsync Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
destination
adalah 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
destination
adalah 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
destination
adalah 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).