IReplyChannel.WaitForRequest(TimeSpan) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wartość wskazującą, czy komunikat żądania jest odbierany przed upływem określonego interwału czasu.
public:
bool WaitForRequest(TimeSpan timeout);
public bool WaitForRequest (TimeSpan timeout);
abstract member WaitForRequest : TimeSpan -> bool
Public Function WaitForRequest (timeout As TimeSpan) As Boolean
Parametry
- timeout
- TimeSpan
Określa TimeSpan , jak długo operacja żądania musi zakończyć się przed upływem limitu czasu i zwróceniem falsepolecenia .
Zwraca
true jeśli żądanie zostanie odebrane przed upływem określonego interwału czasu; w przeciwnym razie false.
Przykłady
Poniższy kod ilustruje sposób implementowania tej metody:
public bool WaitForRequest(TimeSpan timeout)
{
return this.InnerChannel.WaitForRequest(timeout);
}
Uwagi
Wywołanie WaitForRequest(TimeSpan) nie powoduje odebrania ani przetworzenia komunikatu żądania w żaden sposób.
Metoda BeginWaitForRequest(TimeSpan, AsyncCallback, Object) istnieje głównie w przypadku scenariuszy transacted, w których użytkownik chce otrzymywać komunikat przy użyciu transakcji. W przypadku używania tylko ReceiveRequest zwykle w tym celu użytkownik musi utworzyć transakcję, a następnie wywołać ReceiveRequest i mieć nadzieję, że komunikat pojawi się przed przekroczeniem limitu czasu transakcji, co może być niemożliwe.
Zamiast tego użytkownik może wywołać WaitForRequest(TimeSpan) i określić limit czasu (nawet nieskończony), a następnie po odebraniu komunikatu może otworzyć transakcję, wywołać ReceiveRequest i mieć pewność, że może uzyskać komunikat z powrotem przed wygaśnięciem transakcji.
Użyj WaitForRequest(TimeSpan) polecenia , gdy jest to dopuszczalne, aby bieżący wątek był blokowany podczas oczekiwania na przybycie komunikatu do kolejki. Wątek jest blokowany do określonego timeoutelementu . Jeśli potrzebujesz przetwarzania aplikacji, aby kontynuować bez oczekiwania, użyj metody asynchronicznej BeginWaitForRequest(TimeSpan, AsyncCallback, Object) .
Uwagi dotyczące implementowania
Operacja zwraca wartość false , jeśli określona timeout wartość jest przekroczona.