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 disponibile con un intervallo di tempo definito in modo esplicito o implicito.
Overload
| Nome | Descrizione |
|---|---|
| Receive() |
Restituisce il messaggio ricevuto, se disponibile. Se un messaggio non è disponibile, blocca per un intervallo di tempo predefinito. |
| Receive(TimeSpan) |
Restituisce il messaggio ricevuto, se disponibile. Se un messaggio non è disponibile, blocca per un intervallo di tempo specificato. |
Commenti
Usare il metodo sincrono Receive quando è accettabile che il thread corrente venga bloccato fino a quando non riceve il messaggio di richiesta o supera l'intervallo di tempo specificato da timeout. Usare il metodo asincrono BeginReceive quando è necessario che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta.
L'operazione sincrona Receive è disponibile con o senza timeout esplicito.
Se un messaggio non è disponibile, si blocca fino a quando non ne è disponibile uno o fino a quando non viene superato il timeout.
Receive()
- Origine:
- IInputChannel.cs
- Origine:
- IInputChannel.cs
- Origine:
- IInputChannel.cs
Restituisce il messaggio ricevuto, se disponibile. Se un messaggio non è disponibile, 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
Valori restituiti
Oggetto Message ricevuto.
Esempio
Il codice seguente illustra come implementare questo metodo:
public Message Receive()
{
return Receive(DefaultReceiveTimeout);
}
Commenti
Usare il metodo sincrono Receive quando è accettabile che il thread corrente venga bloccato fino a quando non riceve il messaggio di richiesta o supera l'intervallo di tempo specificato da timeout. Usare il metodo asincrono BeginReceive quando si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta.
L'operazione sincrona Receive è disponibile con o senza timeout esplicito.
Se un messaggio non è disponibile, si blocca fino a quando non ne è disponibile uno o fino a quando non viene superato il timeout.
Receive può essere chiamato più volte o simultaneamente. È possibile completare una sola Receive chiamata per ogni messaggio ricevuto.
Si applica a
Receive(TimeSpan)
- Origine:
- IInputChannel.cs
- Origine:
- IInputChannel.cs
- Origine:
- IInputChannel.cs
Restituisce il messaggio ricevuto, se disponibile. Se un messaggio non è disponibile, blocca per un 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
Oggetto TimeSpan che specifica per quanto tempo deve essere completata l'operazione di ricezione prima di scadere e generare un'eccezione TimeoutException.
Valori restituiti
Oggetto Message ricevuto.
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 Message Receive(TimeSpan timeout)
{
Message message;
while (true)
{
message = this.InnerChannel.Receive(timeout);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return message;
}
Commenti
Usare il metodo sincrono Receive quando è accettabile che il thread corrente venga bloccato fino a quando non riceve il messaggio di richiesta o supera l'intervallo di tempo specificato da timeout. Usare il metodo asincrono BeginReceive quando si desidera che l'elaborazione dell'applicazione continui senza attendere la ricezione della richiesta.
L'operazione sincrona Receive è disponibile con o senza timeout esplicito.
Se un messaggio non è disponibile, si blocca fino a quando non ne è disponibile uno o fino a quando non viene superato il timeout.
Receive può essere chiamato più volte o simultaneamente. È possibile completare una sola Receive chiamata per ogni messaggio ricevuto.