IReplyChannel.WaitForRequest(TimeSpan) Methode

Definition

Gibt einen Wert zurück, der angibt, ob eine Anforderungsnachricht vor Ablauf eines angegebenen Zeitintervalls empfangen wird.

public:
 bool WaitForRequest(TimeSpan timeout);
public bool WaitForRequest (TimeSpan timeout);
abstract member WaitForRequest : TimeSpan -> bool
Public Function WaitForRequest (timeout As TimeSpan) As Boolean

Parameter

timeout
TimeSpan

Der TimeSpan, der angibt, wie lange ein Anforderungsvorgang vor Timeout und Ausgabe von false abgeschlossen sein muss.

Gibt zurück

Boolean

true, wenn eine Anforderung empfangen wird, bevor das angegebene Zeitintervall abgelaufen ist, andernfalls false.

Beispiele

Im folgenden Code wird veranschaulicht, wie diese Methode implementiert wird:

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

Hinweise

WaitForRequest(TimeSpan) aufzurufen, führt nicht dazu, dass eine Anforderungsnachricht empfangen oder auf jegliche Art und Weise verarbeitet wird.

Die BeginWaitForRequest(TimeSpan, AsyncCallback, Object)-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 ReceiveRequest hierfür, muss der Benutzer eine Transaktion erstellen und dann ReceiveRequest aufrufen und hoffen, dass die Nachricht ankommt, bevor der Transaktions-Timeout abläuft. Dies ist nicht immer möglich.

Stattdessen kann der Benutzer WaitForRequest(TimeSpan) aufrufen und den Timeout festlegen (auch unendlich), um dann bei Ankunft einer Nachricht die Transaktion zu öffnen, ReceiveRequest aufzurufen und so sicherzustellen, dass die Nachricht vor Ablauf der Transaktion zurückgegeben wird.

Verwenden Sie WaitForRequest(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 BeginWaitForRequest(TimeSpan, AsyncCallback, Object)-Methode.

Hinweise für Ausführende

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

Gilt für