IInputChannel.WaitForMessage(TimeSpan) 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.
İletinin belirli bir zaman aralığı içinde ulaşıp varmadığını gösteren bir değer döndürür.
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean
Parametreler
- timeout
- TimeSpan
, TimeSpan zaman aşımına uğramadan önce iletinin gelmesinin beklendiği en uzun zaman aralığını belirtir.
Döndürülenler
true
aşılana kadar timeout
bir ileti geldiyse; 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 WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Açıklamalar
Çağrı WaitForMessage(TimeSpan) , iletinin başka bir şekilde alınmasına veya işlenmesine neden olmaz.
WaitForMessage(TimeSpan) yöntemi öncelikle kullanıcının bir işlem kullanarak iletiyi almak istediği işlem yapılan senaryolar için vardır. Yalnızca normal şekilde bunu kullanırken Receive , kullanıcının işlemi oluşturması ve ardından çağrısı Receive yapması ve iletinin işlem zaman aşımına uğramadan önce gelmesini umması gerekir ve bu mümkün olmayabilir.
Bunun yerine, kullanıcı istediği zaman aşımını (hatta sonsuz) çağırabilir WaitForMessage(TimeSpan) , sonra bir ileti geldiğinde işlemi açabilir, çağırabilir Receive ve işlemin süresi dolmadan önce iletiyi geri alabileceğinden emin olabilir.
Bu yöntem zaman uyumlu olduğundan, bir ileti kullanılabilir olana veya zaman aşımı gerçekleşene kadar geçerli iş parçacığını engeller. Bir iletinin kuyruğa gelmesini beklerken geçerli iş parçacığının engellenmesi kabul edilebilir olduğunda kullanın WaitForMessage(TimeSpan) . İş parçacığı belirtilen timeout
değerine kadar engellenir. Uygulama işleminin beklemeden devam etmesi gerekiyorsa zaman uyumsuz BeginWaitForMessage(TimeSpan, AsyncCallback, Object) yöntemini kullanın.
Uygulayanlara Notlar
Belirtilen aşılırsa timeout
işlem döndürürfalse
, zaman aşımı özel durumu değil.