IInputChannel.BeginTryReceive(TimeSpan, 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 operasi asinkron untuk menerima pesan yang memiliki waktu habis yang ditentukan dan objek status yang terkait dengannya.
public:
IAsyncResult ^ BeginTryReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginTryReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginTryReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginTryReceive (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- callback
- AsyncCallback
Delegasi AsyncCallback 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 mengilustrasikan cara menerapkan metode ini:
public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
TryReceiveAsyncResult<TChannel> result = new TryReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
Keterangan
Gunakan metode asinkron BeginTryReceive(TimeSpan, AsyncCallback, Object) saat Anda ingin pemrosesan aplikasi dilanjutkan tanpa menunggu. Gunakan metode sinkron TryReceive(TimeSpan, Message) ketika dapat diterima agar utas saat ini diblokir saat membalas pesan permintaan atau sampai interval batas waktu terlampaui.
Operasi tidak selesai sampai pesan tersedia di saluran atau waktu habis terjadi.
Jika Anda akan menangani batas waktu dan tidak hanya melempar ulang atau membungkus TimeoutException, maka Anda harus memanggil BeginTryReceive(TimeSpan, AsyncCallback, Object) alih-alih BeginReceive.
Jika Anda tidak akan mengobati batas waktu secara khusus, cukup panggil BeginReceive, jika tidak, Anda kehilangan informasi kesalahan.
Catatan Bagi Implementer
Operasi mengembalikan false
dari EndTryReceive(IAsyncResult, Message) jika yang ditentukan timeout
terlampaui.