IReplyChannel.WaitForRequest(TimeSpan) Metoda

Definicja

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

Boolean

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.

Dotyczy