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 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.