Język

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ę, który zawiera informacje o stanie skojarzone z operacją asynchroniczną.

Zwraca

Element IAsyncResult , który odwołuje się do operacji asynchronicznej, aby poczekać na nadejście komunikatu.

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 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) , jeśli jest akceptowalna, aby bieżący wątek był blokowany podczas oczekiwania na nadejście 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 do momentu udostępnienia komunikatu w kanale lub przekroczenia limitu czasu.

Notatki dotyczące implementowania

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

Dotyczy