Freigeben über


IInputChannel.WaitForMessage(TimeSpan) Methode

Definition

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

Boolean

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.

Gilt für