IInputChannel.BeginReceive Metodo

Definizione

Avvia un'operazione di ricezione asincrona.

Overload

Nome Descrizione
BeginReceive(AsyncCallback, Object)

Avvia un'operazione asincrona per ricevere un messaggio a cui è associato un oggetto stato.

BeginReceive(TimeSpan, AsyncCallback, Object)

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

Commenti

Usare il metodo asincrono BeginReceive quando si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta. Usare il metodo sincrono Receive quando è accettabile che il thread corrente venga bloccato fino a quando non viene ricevuto il messaggio di richiesta o l'intervallo di tempo specificato da timeout è stato superato. L'operazione asincrona è disponibile con o senza timeout esplicito.

BeginReceive(AsyncCallback, Object)

Origine:
IInputChannel.cs
Origine:
IInputChannel.cs
Origine:
IInputChannel.cs

Avvia un'operazione asincrona per ricevere un messaggio a cui è associato un oggetto stato.

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

Parametri

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 alla ricezione asincrona dei messaggi.

Esempio

Il codice seguente illustra come implementare questo metodo:

public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
    return BeginReceive(DefaultReceiveTimeout, callback, state);
}

Commenti

Usare il metodo asincrono BeginReceive quando si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta. Usare il metodo sincrono Receive quando è accettabile che il thread corrente venga bloccato fino a quando non viene ricevuto il messaggio di richiesta o l'intervallo di tempo specificato da timeout è stato superato. L'operazione asincrona è disponibile con o senza timeout esplicito.

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

Si applica a

BeginReceive(TimeSpan, AsyncCallback, Object)

Origine:
IInputChannel.cs
Origine:
IInputChannel.cs
Origine:
IInputChannel.cs

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

public:
 IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (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 di ricezione asincrona.

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 BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

Commenti

Usare il metodo asincrono BeginReceive quando si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta. Usare il metodo sincrono Receive quando è accettabile che il thread corrente venga bloccato fino a quando non viene ricevuto il messaggio di richiesta o l'intervallo di tempo specificato da timeout è stato superato. L'operazione asincrona è disponibile con o senza timeout esplicito.

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 genera un'eccezione TimeoutException se l'oggetto specificato timeout viene superato prima del completamento.

Si applica a