Bagikan melalui


GZipStream.ReadAsync Metode

Definisi

Overload

ReadAsync(Memory<Byte>, CancellationToken)

Secara asinkron membaca urutan byte dari aliran GZip saat ini ke wilayah memori byte, memajukan posisi dalam aliran GZip dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Secara asinkron membaca urutan byte dari aliran GZip saat ini ke dalam array byte, memajukan posisi dalam aliran GZip dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

ReadAsync(Memory<Byte>, CancellationToken)

Sumber:
GZipStream.cs
Sumber:
GZipStream.cs
Sumber:
GZipStream.cs

Secara asinkron membaca urutan byte dari aliran GZip saat ini ke wilayah memori byte, memajukan posisi dalam aliran GZip dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
Memory<Byte>

Wilayah memori untuk menulis data.

cancellationToken
CancellationToken

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

Mengembalikan

Tugas yang mewakili operasi baca asinkron, yang membungkus jumlah total byte yang dibaca ke dalam buffer. Nilai hasil dapat kurang dari jumlah byte yang dialokasikan dalam buffer jika banyak byte saat ini tidak tersedia, atau bisa 0 (nol) jika akhir aliran GZip telah tercapai.

Pengecualian

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

Keterangan

Penting

Mulai dari .NET 6, metode ini mungkin tidak membaca byte sebanyak yang diminta. Untuk informasi selengkapnya, lihat Bacaan parsial dan nol byte di DeflateStream, GZipStream, dan CryptoStream.

Metode ini ReadAsync memungkinkan Anda melakukan operasi I/O intensif sumber daya tanpa memblokir utas utama. Pertimbangan performa ini sangat penting di aplikasi desktop di mana operasi streaming yang memakan waktu dapat memblokir utas UI dan membuat aplikasi muncul seolah-olah tidak berfungsi. Metode asinkron digunakan bersama dengan async kata kunci dan await di Visual Basic dan C#.

CanRead Gunakan properti untuk menentukan apakah instans saat ini mendukung pembacaan.

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

Berlaku untuk

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Sumber:
GZipStream.cs
Sumber:
GZipStream.cs
Sumber:
GZipStream.cs

Secara asinkron membaca urutan byte dari aliran GZip saat ini ke dalam array byte, memajukan posisi dalam aliran GZip dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ array, int offset, int count, System::Threading::CancellationToken cancellationToken);
public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (array As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

Parameter

arraybuffer
Byte[]

Buffer untuk menulis data ke dalamnya.

offset
Int32

Offset byte untuk mulai menulis data dari aliran GZip.

count
Int32

Jumlah maksimum byte yang akan dibaca.

cancellationToken
CancellationToken

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

Mengembalikan

Tugas yang mewakili operasi baca asinkron, yang membungkus jumlah total byte yang dibaca. Nilai hasilnya bisa kurang dari jumlah byte yang diminta jika jumlah byte yang saat ini tersedia kurang dari angka yang diminta, atau bisa 0 (nol) jika akhir aliran GZip telah tercapai.

Pengecualian

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

Keterangan

Penting

Mulai dari .NET 6, metode ini mungkin tidak membaca byte sebanyak yang diminta. Untuk informasi selengkapnya, lihat Bacaan parsial dan nol byte di DeflateStream, GZipStream, dan CryptoStream.

Metode ini ReadAsync memungkinkan Anda melakukan operasi I/O intensif sumber daya tanpa memblokir utas utama. Pertimbangan performa ini sangat penting di aplikasi desktop di mana operasi streaming yang memakan waktu dapat memblokir utas UI dan membuat aplikasi muncul seolah-olah tidak berfungsi. Metode asinkron digunakan bersama dengan async kata kunci dan await di Visual Basic dan C#.

CanRead Gunakan properti untuk menentukan apakah instans saat ini mendukung pembacaan.

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

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 Read(Byte[], Int32, Int32).

Berlaku untuk