IInputChannel.BeginReceive Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizia un'operazione di ricezione asincrona.
Overload
BeginReceive(AsyncCallback, Object) |
Inizia un'operazione asincrona per ricevere un messaggio al quale è associato un oggetto di stato. |
BeginReceive(TimeSpan, AsyncCallback, Object) |
Avvia un'operazione asincrona per ricevere un messaggio al quale sono associati un timeout e un oggetto di stato specificati. |
Commenti
Se si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta, utilizzare il metodo asincrono BeginReceive. Nei casi in cui è ammissibile che il thread corrente resti bloccato fino alla ricezione del messaggio di richiesta o fino al termine dell'intervallo di tempo indicato nel parametro Receive, usare il metodo timeout
sincrono. L'operazione asincrona è disponibile con o senza un timeout esplicito.
BeginReceive(AsyncCallback, Object)
- Origine:
- IInputChannel.cs
Inizia un'operazione asincrona per ricevere un messaggio al quale è associato un oggetto di 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 le informazioni sullo stato associate all'operazione asincrona.
Restituisce
IAsyncResult fa riferimento alla ricezione asincrona del messaggio.
Esempio
Nell'esempio di codice seguente viene illustrato come implementare questo metodo:
public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
return BeginReceive(DefaultReceiveTimeout, callback, state);
}
Commenti
Se si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta, utilizzare il metodo asincrono BeginReceive. Nei casi in cui è ammissibile che il thread corrente resti bloccato fino alla ricezione del messaggio di richiesta o fino al termine dell'intervallo di tempo indicato nel parametro Receive, usare il metodo timeout
sincrono. L'operazione asincrona è disponibile con o senza un timeout esplicito.
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.
Si applica a
BeginReceive(TimeSpan, AsyncCallback, Object)
- Origine:
- IInputChannel.cs
Avvia un'operazione asincrona per ricevere un messaggio al quale sono associati un timeout e un oggetto di stato specificati.
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 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
IAsyncResult fa riferimento all'operazione di ricezione asincrona.
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 BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
Commenti
Se si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta, utilizzare il metodo asincrono BeginReceive. Nei casi in cui è ammissibile che il thread corrente resti bloccato fino alla ricezione del messaggio di richiesta o fino al termine dell'intervallo di tempo indicato nel parametro Receive, usare il metodo timeout
sincrono. L'operazione asincrona è disponibile con o senza un timeout esplicito.
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 genera una TimeoutException se il timeout
specificato viene superato prima del completamento.