NetworkStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 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.
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.
- callback
- AsyncCallback
Delegasi AsyncCallback yang dijalankan saat BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) selesai.
- 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.
Sudah NetworkStream ditutup.
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.