Bagikan melalui


IInputChannel.BeginReceive Metode

Definisi

Memulai operasi penerimaan asinkron.

Overload

BeginReceive(AsyncCallback, Object)

Memulai operasi asinkron untuk menerima pesan yang memiliki objek status yang terkait dengannya.

BeginReceive(TimeSpan, AsyncCallback, Object)

Memulai operasi asinkron untuk menerima pesan yang memiliki waktu habis yang ditentukan dan objek status yang terkait dengannya.

Keterangan

Gunakan metode asinkron BeginReceive saat Anda ingin pemrosesan aplikasi dilanjutkan tanpa menunggu permintaan diterima. Gunakan metode sinkron Receive ketika dapat diterima agar utas saat ini diblokir hingga pesan permintaan diterima atau interval waktu yang ditentukan oleh timeout telah terlampaui. Operasi asinkron tersedia dengan atau tanpa batas waktu eksplisit.

BeginReceive(AsyncCallback, Object)

Sumber:
IInputChannel.cs
Sumber:
IInputChannel.cs

Memulai operasi asinkron untuk menerima pesan yang memiliki objek status yang terkait dengannya.

public:
 IAsyncResult ^ BeginReceive(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (AsyncCallback callback, object state);
abstract member BeginReceive : AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

callback
AsyncCallback

AsyncCallback Delegasi yang menerima pemberitahuan penyelesaian operasi asinkron.

state
Object

Objek, yang ditentukan oleh aplikasi, yang berisi informasi status yang terkait dengan operasi asinkron.

Mengembalikan

IAsyncResult yang mereferensikan penerimaan pesan asinkron.

Contoh

Kode berikut menggambarkan cara menerapkan metode ini:

public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
    return BeginReceive(DefaultReceiveTimeout, callback, state);
}

Keterangan

Gunakan metode asinkron BeginReceive saat Anda ingin pemrosesan aplikasi dilanjutkan tanpa menunggu permintaan diterima. Gunakan metode sinkron Receive ketika dapat diterima agar utas saat ini diblokir hingga pesan permintaan diterima atau interval waktu yang ditentukan oleh timeout telah terlampaui. Operasi asinkron tersedia dengan atau tanpa batas waktu eksplisit.

Metode ini menerima pemberitahuan, melalui panggilan balik, identitas penanganan aktivitas untuk operasi. Operasi tidak selesai sampai pesan tersedia di saluran.

Berlaku untuk

BeginReceive(TimeSpan, AsyncCallback, Object)

Sumber:
IInputChannel.cs
Sumber:
IInputChannel.cs

Memulai operasi asinkron untuk menerima pesan yang memiliki waktu habis yang ditentukan dan objek status yang terkait dengannya.

public:
 IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

timeout
TimeSpan

TimeSpan yang menentukan interval waktu untuk menunggu pesan tersedia.

callback
AsyncCallback

AsyncCallback Delegasi yang menerima pemberitahuan penyelesaian operasi asinkron.

state
Object

Objek, yang ditentukan oleh aplikasi, yang berisi informasi status yang terkait dengan operasi asinkron.

Mengembalikan

IAsyncResult yang mereferensikan operasi penerimaan asinkron.

Pengecualian

Yang ditentukan timeout terlampaui sebelum operasi selesai.

Batas waktu yang ditentukan kurang dari nol.

Contoh

Kode berikut menggambarkan cara menerapkan metode ini:

public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

Keterangan

Gunakan metode asinkron BeginReceive saat Anda ingin pemrosesan aplikasi dilanjutkan tanpa menunggu permintaan diterima. Gunakan metode sinkron Receive ketika dapat diterima agar utas saat ini diblokir hingga pesan permintaan diterima atau interval waktu yang ditentukan oleh timeout telah terlampaui. Operasi asinkron tersedia dengan atau tanpa batas waktu eksplisit.

Operasi tidak selesai sampai pesan tersedia di saluran atau waktu habis terjadi.

Catatan Bagi Implementer

Operasi melempar TimeoutException jika yang ditentukan timeout terlampaui sebelum selesai.

Berlaku untuk