Udostępnij za pośrednictwem


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 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 timeoutelementu . 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.

Dotyczy