IInputChannel.WaitForMessage(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 dotarł do określonego interwału czasu.
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage(TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean
Parametry
- timeout
- TimeSpan
Parametr TimeSpan określa maksymalny interwał czasu oczekiwania na nadejście komunikatu przed przekroczeniem limitu czasu.
Zwraca
true jeśli komunikat został dostarczony przed przekroczeniem timeout ; w przeciwnym razie false.
Wyjątki
timeout Określony parametr zostanie przekroczony przed ukończeniem operacji.
Określony limit czasu jest mniejszy niż zero.
Przykłady
Poniższy kod ilustruje sposób implementacji tej metody:
public bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Uwagi
Wywołanie WaitForMessage(TimeSpan) nie powoduje odebrania ani przetworzenia komunikatu w inny sposób.
Metoda WaitForMessage(TimeSpan) istnieje głównie w przypadku scenariuszy transakcyjnych, w których użytkownik chce otrzymywać komunikat przy użyciu transakcji. W przypadku używania tego polecenia zwykle Receive użytkownik musi utworzyć transakcję, a następnie wywołać Receive i mieć nadzieję, że komunikat pojawi się przed upływem limitu czasu transakcji, co może nie być możliwe.
Zamiast tego użytkownik może wywołać WaitForMessage(TimeSpan) dowolny limit czasu (nawet nieskończony), a następnie po odebraniu komunikatu może otworzyć transakcję, wywołać Receive i mieć pewność, że może uzyskać komunikat z powrotem przed wygaśnięciem transakcji.
Ta metoda jest synchroniczna, dlatego blokuje bieżący wątek do momentu udostępnienia komunikatu lub przekroczenia limitu czasu. Użyj WaitForMessage(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 BeginWaitForMessage(TimeSpan, AsyncCallback, Object) .
Notatki dotyczące implementowania
Operacja zwraca false wartość, jeśli określona timeout wartość jest przekroczona, a nie wyjątek limitu czasu.