Bagikan melalui


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

Definisi

Memulai pembacaan asinkron dari NetworkStream.

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

Array jenis Byte yang merupakan lokasi dalam memori untuk menyimpan data yang NetworkStreamdibaca dari .

offset
Int32

Lokasi di buffer untuk mulai menyimpan data.

sizecount
Int32

Jumlah byte yang akan dibaca dari NetworkStream.

state
Object

Objek yang berisi data tambahan yang ditentukan pengguna.

Mengembalikan

Yang IAsyncResult mewakili panggilan asinkron.

Pengecualian

Parameternya buffer adalah null.

Parameternya offset kurang dari 0.

-atau-

Parameter offset lebih besar dari panjang buffer paramater.

-atau-

Kurang size dari 0.

-atau-

size lebih besar dari panjang buffer dikurangi nilai offset parameter.

Yang mendasar Socket ditutup.

-atau-

Terjadi kegagalan saat membaca dari jaringan.

-atau-

Terjadi kesalahan saat mengakses soket.

Keterangan

Penting

Ini adalah API kompatibilitas, kami tidak menyarankan untuk menggunakan metode APM (Mulai/Akhir) untuk pengembangan baru. Sebagai gantinya, gunakan setara berbasis Tugas.

Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallbackBeginRead untuk mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginRead. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true untuk menunjukkan bahwa metode selesai secara sinkron. AsyncState Gunakan properti untuk IAsyncResult mendapatkan objek status yang diteruskan ke BeginRead metode .

Operasi BeginRead harus diselesaikan dengan memanggil EndRead metode . Biasanya, metode ini dipanggil oleh delegasi yang disediakan AsyncCallback . EndRead akan memblokir utas panggilan hingga operasi selesai.

Operasi ini membaca data sebanyak yang tersedia, hingga jumlah byte yang ditentukan oleh size parameter .

Catatan

Jika Anda menerima IOException, periksa InnerException properti untuk menentukan apakah itu disebabkan oleh SocketException. Jika demikian, gunakan ErrorCode properti untuk mendapatkan kode kesalahan tertentu.

Operasi baca dan tulis dapat dilakukan secara bersamaan pada instans NetworkStream kelas tanpa perlu sinkronisasi. Selama ada satu utas unik untuk operasi tulis dan satu utas unik untuk operasi baca, tidak akan ada gangguan silang antara utas baca dan tulis dan tidak diperlukan sinkronisasi.

Berlaku untuk

Lihat juga