IInputChannel.TryReceive(TimeSpan, Message) 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 süre içinde bir ileti almaya çalışır.
public:
bool TryReceive(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::Message ^ % message);
public bool TryReceive (TimeSpan timeout, out System.ServiceModel.Channels.Message message);
abstract member TryReceive : TimeSpan * Message -> bool
Public Function TryReceive (timeout As TimeSpan, ByRef message As Message) As Boolean
Parametreler
- timeout
- TimeSpan
IAsyncResult yöntemlerinden birine BeginReceive yapılan bir çağrı tarafından döndürülen.
Döndürülenler
true
iletinin aşılmasından önce timeout
alınırsa, aksi takdirde false
.
Ö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 bool TryReceive(TimeSpan timeout, out Message message)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceive(timeout, out message);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return result;
}
Açıklamalar
Zaman aşımlarını işleyecek ve yalnızca öğesini yeniden atmayacak veya sarmalayacaksanız TimeoutExceptionyerine çağrısı TryReceive(TimeSpan, Message)Receiveyapmalısınız.
Zaman aşımlarını özel olarak ele almayacaksanız yalnızca çağrısı Receiveyapın, aksi takdirde hata bilgilerini kaybedersiniz.