Bagikan melalui


CryptoStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metode

Definisi

Memulai operasi baca asinkron. (Pertimbangkan untuk menggunakan ReadAsync sebagai gantinya.)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffer
Byte[]

Buffer untuk membaca data.

offset
Int32

Offset byte untuk buffer mulai menulis data yang dibaca dari aliran.

count
Int32

Jumlah maksimum byte yang akan dibaca.

callback
AsyncCallback

Panggilan balik asinkron opsional, yang akan dipanggil ketika pembacaan selesai.

state
Object

Objek yang disediakan pengguna yang membedakan permintaan baca asinkron khusus ini dari permintaan lain.

Mengembalikan

Yang IAsyncResult mewakili bacaan asinkron, yang masih bisa tertunda.

Pengecualian

Mencoba pembacaan asinkron melewati akhir aliran, atau terjadi kesalahan disk.

Satu atau beberapa argumen tidak valid.

Metode dipanggil setelah aliran ditutup.

Implementasi saat ini Stream tidak mendukung operasi baca.

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.

Dalam .NET Framework 4 dan versi yang lebih lama, Anda harus menggunakan metode seperti BeginRead dan EndRead untuk menerapkan operasi I/O asinkron. Metode ini masih tersedia dalam versi saat ini untuk mendukung kode warisan; namun, metode asinkron baru, seperti ReadAsync, , WriteAsyncCopyToAsync, dan FlushAsync, membantu Anda menerapkan operasi I/O asinkron dengan lebih mudah.

Teruskan IAsyncResult nilai kembali ke EndRead metode aliran untuk menentukan berapa banyak byte yang dibaca dan untuk merilis sumber daya sistem operasi yang digunakan untuk membaca. EndRead harus dipanggil sekali untuk setiap panggilan ke BeginRead. Anda dapat melakukan ini baik dengan menggunakan kode yang sama yang disebut BeginRead atau dalam panggilan balik yang diteruskan ke BeginRead.

Posisi saat ini dalam aliran diperbarui ketika baca atau tulis asinkron dikeluarkan, bukan ketika operasi I/O selesai.

Beberapa permintaan asinkron simultan membuat pesanan penyelesaian permintaan tidak pasti.

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

Jika aliran ditutup atau Anda melewati argumen yang tidak valid, pengecualian langsung dilemparkan dari BeginRead. Kesalahan yang terjadi selama permintaan baca asinkron, seperti kegagalan disk selama permintaan I/O, terjadi pada utas kumpulan utas dan melemparkan pengecualian saat memanggil EndRead.

Berlaku untuk