IInputChannel.BeginTryReceive(TimeSpan, AsyncCallback, Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen zaman aşımına ve kendisiyle ilişkili durum nesnesine sahip bir ileti almak için zaman uyumsuz bir işlem başlatır.
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
Parametreler
- timeout
- TimeSpan
bir TimeSpan iletinin kullanılabilir duruma gelmesinin beklenebilecek zaman aralığını belirtir.
- callback
- AsyncCallback
AsyncCallback Zaman uyumsuz işlem tamamlama bildirimini alan temsilci.
- state
- Object
Uygulama tarafından belirtilen ve zaman uyumsuz işlemle ilişkili durum bilgilerini içeren bir nesne.
Döndürülenler
IAsyncResult Zaman uyumsuz alma işlemine başvuran.
Özel durumlar
timeout
belirtilen işlem tamamlanmadan önce aşıldı.
Belirtilen zaman aşımı sıfırdan küçük.
Örnekler
Aşağıdaki kodda bu yöntemin nasıl uygulandığı gösterilmektedir:
public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
TryReceiveAsyncResult<TChannel> result = new TryReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
Açıklamalar
Uygulama işlemenin beklemeden devam etmesi için zaman uyumsuz BeginTryReceive(TimeSpan, AsyncCallback, Object) yöntemini kullanın. Geçerli iş parçacığı istek iletisini yanıtlarken veya zaman aşımı aralığı aşılana kadar engellenebilir olduğunda zaman uyumlu TryReceive(TimeSpan, Message) yöntemini kullanın.
kanalda bir ileti kullanılabilir duruma gelene veya zaman aşımı oluşana kadar işlem tamamlanmaz.
Zaman aşımlarını işleyecek ve yalnızca öğesini yeniden atmayacak veya sarmalayacaksanız TimeoutExceptionyerine çağrısı BeginTryReceive(TimeSpan, AsyncCallback, Object)BeginReceiveyapmalısınız.
Zaman aşımlarını özel olarak ele almayacaksanız yalnızca çağrısı BeginReceiveyapın, aksi takdirde hata bilgilerini kaybedersiniz.
Uygulayanlara Notlar
Belirtilen timeout
değerin aşılması durumunda işlem' den EndTryReceive(IAsyncResult, Message) döndürülüyorfalse
.