IInputChannel.Receive Metodo

Definizione

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.

Si applica a