Condividi tramite


IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Metodo

Definizione

Avvia un'operazione asincrona di attesa dell'arrivo di un messaggio al quale sono associati un timeout e un oggetto di stato specificati.

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 della classe TimeSpan che indica il tempo di attesa necessario affinché un messaggio diventi disponibile.

callback
AsyncCallback

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

state
Object

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

Restituisce

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

Eccezioni

Il timeout specificato è stato superato prima del completamento dell'operazione.

Il timeout specificato è minore di zero.

Esempio

Nell'esempio di codice seguente viene illustrato come implementare questo metodo:

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

Commenti

Se si desidera che l'elaborazione dell'applicazione continui senza attendere l'arrivo di un messaggio, utilizzare il metodo asincrono BeginWaitForMessage(TimeSpan, AsyncCallback, Object). Utilizzare il metodo sincrono WaitForMessage(TimeSpan) quando è possibile bloccare il thread corrente durante l'attesa dell'arrivo di un messaggio nella coda. Il thread è bloccato fino al timeout specificato.

Questo metodo riceve mediante un callback la notifica dell'identità del gestore eventi relativa all'operazione. L'operazione non è completa fino a quando un messaggio non viene reso disponibile nel canale o non si verifica il timeout.

Note per gli implementatori

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

Si applica a