IInputChannel.WaitForMessage(TimeSpan) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt einen Wert zurück, der angibt, ob eine Nachricht innerhalb eines angegebenen Zeitintervalls angekommen ist.
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean
Parameter
- timeout
- TimeSpan
Der TimeSpan-Wert, der das maximale Zeitintervall für das Warten auf den Nachrichteneingang vor dem Timeout angibt.
Gibt zurück
true
, wenn eine Nachricht angekommen ist, bevor der timeout
überschritten wurde, andernfalls false
.
Ausnahmen
Der festgelegte timeout
wird überstiegen, bevor der Vorgang abgeschlossen ist.
Der festgelegte Timeout ist kleiner als 0 (null).
Beispiele
Im folgenden Code wird veranschaulicht, wie diese Methode implementiert wird:
public bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Hinweise
WaitForMessage(TimeSpan) aufzurufen, führt nicht dazu, dass eine Nachricht empfangen oder auf jegliche andere Art und Weise verarbeitet wird.
Die WaitForMessage(TimeSpan)-Methode existiert primär für transaktive Szenarien, bei denen der Benutzer die Nachricht unter Verwendung einer Transaktion empfangen möchte. Bei der Verwendung von lediglich Receive hierfür, muss der Benutzer eine Transaktion erstellen und dann Receive aufrufen und hoffen, dass die Nachricht eingeht, bevor der Transaktions-Timeout abläuft. Dies ist nicht notwendigerweise möglich.
Stattdessen kann der Benutzer WaitForMessage(TimeSpan) mit beliebigem Timeout (auch unendlich) aufrufen, um dann bei Nachrichteneingang die Transaktion zu öffnen, Receive aufzurufen und so sicherzustellen, dass vor Ablauf der Transaktion die Nachricht zurückgegeben wird.
Diese Methode ist synchron. Sie blockiert daher den aktuellen Thread, bis eine Nachricht verfügbar ist oder der Timeout eintritt. Verwenden Sie WaitForMessage(TimeSpan)¸ wenn eine Blockade des aktuellen Threads bis zum Eingehen einer Nachricht in die Warteschlange akzeptabel ist. Der Thread wird zum angegebenen timeout
blockiert. Wenn die Anwendungsverarbeitung ohne Wartezeiten fortgesetzt werden soll, verwenden Sie die asynchrone BeginWaitForMessage(TimeSpan, AsyncCallback, Object)-Methode.
Hinweise für Ausführende
Der Vorgang gibt false
zurück, wenn der angegebene timeout
überschritten wird, nicht eine Timeoutausnahme.