IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Metodo

Definizione

Avvia un'operazione di attesa asincrona per l'arrivo di un messaggio con un timeout specificato e un oggetto di stato associato.

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

Parametri

timeout
TimeSpan

Oggetto TimeSpan che specifica l'intervallo di tempo di attesa per la disponibilità di un messaggio.

callback
AsyncCallback

Delegato AsyncCallback che riceve la notifica del completamento dell'operazione asincrona.

state
Object

Oggetto, specificato dall'applicazione, che contiene informazioni sullo stato associate all'operazione asincrona.

Valori restituiti

Oggetto IAsyncResult che fa riferimento all'operazione asincrona per attendere l'arrivo di un messaggio.

Eccezioni

L'oggetto specificato timeout viene superato prima del completamento dell'operazione.

Il timeout specificato è minore di zero.

Esempio

Il codice seguente illustra come implementare questo metodo:

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

Commenti

Usare il metodo asincrono BeginWaitForMessage(TimeSpan, AsyncCallback, Object) se è necessario che l'elaborazione dell'applicazione continui senza attendere l'arrivo del messaggio. Usare il metodo sincrono WaitForMessage(TimeSpan) quando è accettabile che il thread corrente venga bloccato mentre attende l'arrivo di un messaggio nella coda. Il thread viene bloccato fino all'oggetto specificato timeout.

Questo metodo riceve una notifica, tramite un callback, dell'identità del gestore eventi per l'operazione. L'operazione non viene completata fino a quando non viene reso disponibile un messaggio nel canale o si verifica il timeout.

Note per gli implementatori

L'operazione restituisce false se l'oggetto specificato timeout viene superato, non un'eccezione di timeout.

Si applica a