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 przekroczeniem limitu czasu i zwróceniem false
.
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 implementacji 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 scenariuszach transakcyjnych, w których użytkownik chce odbierać komunikat przy użyciu transakcji. W przypadku normalnego użycia ReceiveRequest 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 nie być moż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 będzie mógł uzyskać komunikat z powrotem przed wygaśnięciem transakcji.
Użyj WaitForRequest(TimeSpan) polecenia , gdy bieżący wątek jest akceptowalny, aby był blokowany podczas oczekiwania na nadejście komunikatu do kolejki. Wątek jest blokowany do określonego timeout
elementu . Jeśli potrzebujesz przetwarzania aplikacji, aby kontynuować bez oczekiwania, użyj metody asynchronicznej BeginWaitForRequest(TimeSpan, AsyncCallback, Object) .
Uwagi dotyczące implementowania
Operacja zwraca false
wartość, jeśli określona timeout
wartość zostanie przekroczona.