IReplyChannel.WaitForRequest(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 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
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.