IInputChannel.Receive 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.
Restituisce un messaggio ricevuto dal canale di input, se ne è disponibile uno con un intervallo di tempo definito in modo esplicito o implicito.
Overload
Receive() |
Se disponibile, restituisce il messaggio ricevuto. Se un messaggio non è disponibile, il thread si blocca per un intervallo di tempo predefinito. |
Receive(TimeSpan) |
Se disponibile, restituisce il messaggio ricevuto. Se un messaggio non è disponibile, il thread si blocca per l'intervallo di tempo specificato. |
Commenti
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. Se si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta, utilizzare il metodo asincrono BeginReceive.
L'operazione sincrona Receive è disponibile con o senza un timeout esplicito.
Se un messaggio non è disponibile, il thread si blocca fino a quando non ne viene trovato uno o non viene superato il timeout.
Receive()
- Origine:
- IInputChannel.cs
Se disponibile, restituisce il messaggio ricevuto. Se un messaggio non è disponibile, il thread si blocca per un intervallo di tempo predefinito.
public:
System::ServiceModel::Channels::Message ^ Receive();
public System.ServiceModel.Channels.Message Receive ();
abstract member Receive : unit -> System.ServiceModel.Channels.Message
Public Function Receive () As Message
Restituisce
Message ricevuto.
Esempio
Nell'esempio di codice seguente viene illustrato come implementare questo metodo:
public Message Receive()
{
return Receive(DefaultReceiveTimeout);
}
Commenti
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. Se si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta, utilizzare il metodo asincrono BeginReceive.
L'operazione sincrona Receive è disponibile con o senza un timeout esplicito.
Se un messaggio non è disponibile, il thread si blocca fino a quando non ne viene trovato uno o non viene superato il timeout.
Receive può essere chiamato più volte o contemporaneamente. Per ogni messaggio ricevuto può essere completata solo una chiamata Receive.
Si applica a
Receive(TimeSpan)
- Origine:
- IInputChannel.cs
Se disponibile, restituisce il messaggio ricevuto. Se un messaggio non è disponibile, il thread si blocca per l'intervallo di tempo specificato.
public:
System::ServiceModel::Channels::Message ^ Receive(TimeSpan timeout);
public System.ServiceModel.Channels.Message Receive (TimeSpan timeout);
abstract member Receive : TimeSpan -> System.ServiceModel.Channels.Message
Public Function Receive (timeout As TimeSpan) As Message
Parametri
- timeout
- TimeSpan
TimeSpan specifica il tempo entro il quale l'operazione di ricezione deve essere completata, prima di scadere e restituire TimeoutException.
Restituisce
Message ricevuto.
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 Message Receive(TimeSpan timeout)
{
Message message;
while (true)
{
message = this.InnerChannel.Receive(timeout);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return message;
}
Commenti
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. Se si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta, utilizzare il metodo asincrono BeginReceive.
L'operazione sincrona Receive è disponibile con o senza un timeout esplicito.
Se un messaggio non è disponibile, il thread si blocca fino a quando non ne viene trovato uno o non viene superato il timeout.
Receive può essere chiamato più volte o contemporaneamente. Per ogni messaggio ricevuto può essere completata solo una chiamata Receive.