IInputChannel.WaitForMessage(TimeSpan) Methode

Definition

Gibt einen Wert zurück, der angibt, ob eine Nachricht innerhalb eines angegebenen Zeitintervalls eingegangen 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

Das TimeSpan Specifies the maximum interval of time to wait for a message to arrive before timing out.

Gibt zurück

true wenn eine Nachricht eingetroffen ist, bevor die timeout Nachricht überschritten wurde; andernfalls false.

Ausnahmen

Der angegebene timeout Wert wird überschritten, bevor der Vorgang abgeschlossen ist.

Das angegebene Timeout ist kleiner als 0.

Beispiele

Der folgende Code veranschaulicht die Implementierung dieser Methode:

public bool WaitForMessage(TimeSpan timeout)
{
    return this.InnerChannel.WaitForMessage(timeout);
}

Hinweise

Das Aufrufen WaitForMessage(TimeSpan) führt nicht dazu, dass eine Nachricht auf andere Weise empfangen oder verarbeitet wird.

Die WaitForMessage(TimeSpan) Methode ist in erster Linie für Transaktionsszenarien vorhanden, in denen der Benutzer die Nachricht mithilfe einer Transaktion empfangen möchte. Bei der normalen Verwendung Receive muss der Benutzer die Transaktion erstellen und dann anrufen Receive und hoffen, dass die Nachricht vor ablaufen der Transaktion eingeht, was möglicherweise nicht möglich ist.

Stattdessen kann der Benutzer mit dem gewünschten Timeout (auch unendlich) anrufen WaitForMessage(TimeSpan) , und wenn eine Nachricht eingeht, kann er die Transaktion öffnen, anrufen Receive und sicher sein, dass sie die Nachricht zurückholen können, bevor die Transaktion abläuft.

Diese Methode ist synchron, sodass der aktuelle Thread blockiert wird, bis eine Nachricht verfügbar ist oder das Timeout auftritt. Wird verwendet WaitForMessage(TimeSpan) , wenn der aktuelle Thread blockiert werden kann, während eine Nachricht in der Warteschlange eingetroffen ist. Der Thread wird bis zum angegebenen timeoutThread blockiert. Wenn Die Anwendungsverarbeitung ohne Warten fortgesetzt werden muss, verwenden Sie die asynchrone BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Methode.

Hinweise für Ausführende

Der Vorgang gibt zurück false , wenn der angegebene timeout Wert überschritten wird, keine Timeoutausnahme.

Gilt für: