Udostępnij za pośrednictwem


IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Metoda

Definicja

Rozpoczyna asynchroniczną operację wait-for-a-message-to-arrive, która ma określony limit czasu i skojarzony z nim obiekt stanu.

public:
 IAsyncResult ^ BeginWaitForMessage(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWaitForMessage (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginWaitForMessage : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginWaitForMessage (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

timeout
TimeSpan

Określa TimeSpan interwał czasu oczekiwania na udostępnienie komunikatu.

callback
AsyncCallback

Delegat AsyncCallback , który odbiera powiadomienie o zakończeniu operacji asynchronicznej.

state
Object

Obiekt określony przez aplikację zawierający informacje o stanie skojarzone z operacją asynchroniczną.

Zwraca

IAsyncResult

Odwołuje IAsyncResult się do operacji asynchronicznej, aby poczekać na nadejście komunikatu.

Wyjątki

timeout Określona wartość zostanie przekroczona przed ukończeniem operacji.

Określony limit czasu jest mniejszy niż zero.

Przykłady

Poniższy kod ilustruje sposób implementowania tej metody:

public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
    return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}

Uwagi

Użyj metody asynchronicznej BeginWaitForMessage(TimeSpan, AsyncCallback, Object) , jeśli potrzebujesz przetwarzania aplikacji, aby kontynuować bez oczekiwania na nadejście komunikatu. Użyj metody synchronicznej WaitForMessage(TimeSpan) , gdy jest akceptowalna, aby bieżący wątek był blokowany podczas oczekiwania na przybycie komunikatu do kolejki. Wątek jest blokowany do określonego timeoutelementu .

Ta metoda odbiera powiadomienie za pośrednictwem wywołania zwrotnego tożsamości programu obsługi zdarzeń dla operacji. Operacja nie zostanie ukończona, dopóki komunikat nie stanie się dostępny w kanale lub upłynął limit czasu.

Uwagi dotyczące implementowania

Operacja zwraca wartość false , jeśli określona timeout wartość jest przekroczona, a nie wyjątek przekroczenia limitu czasu.

Dotyczy