IInputChannel.Receive Méthode

Définition

Retourne un message reçu par le canal d’entrée, s’il est disponible avec un intervalle de temps explicitement ou implicitement défini.

Surcharges

Nom Description
Receive()

Retourne le message reçu, le cas échéant. Si un message n’est pas disponible, bloque un intervalle de temps par défaut.

Receive(TimeSpan)

Retourne le message reçu, le cas échéant. Si un message n’est pas disponible, bloque un intervalle de temps spécifié.

Remarques

Utilisez la méthode synchrone Receive lorsqu’il est acceptable que le thread actuel soit bloqué jusqu’à ce qu’il reçoive le message de demande ou dépasse l’intervalle de temps spécifié par timeout. Utilisez la méthode asynchrone BeginReceive lorsque vous avez besoin que le traitement de l’application continue sans attendre la réception de la demande.

L’opération synchrone Receive est disponible avec ou sans délai d’expiration explicite.

Si un message n’est pas disponible, il bloque jusqu’à ce qu’un message soit disponible ou jusqu’à ce que le délai d’expiration soit dépassé.

Receive()

Retourne le message reçu, le cas échéant. Si un message n’est pas disponible, bloque un intervalle de temps par défaut.

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

Retours

Reçu Message .

Exemples

Le code suivant montre comment implémenter cette méthode :

public Message Receive()
{
    return Receive(DefaultReceiveTimeout);
}

Remarques

Utilisez la méthode synchrone Receive lorsqu’il est acceptable que le thread actuel soit bloqué jusqu’à ce qu’il reçoive le message de demande ou dépasse l’intervalle de temps spécifié par timeout. Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l’application continue sans attendre la réception de la demande.

L’opération synchrone Receive est disponible avec ou sans délai d’expiration explicite.

Si un message n’est pas disponible, il bloque jusqu’à ce qu’un message soit disponible ou jusqu’à ce que le délai d’expiration soit dépassé.

Receive peut être appelé plusieurs fois ou simultanément. Receive Un seul appel peut être effectué pour chaque message reçu.

S’applique à

Receive(TimeSpan)

Retourne le message reçu, le cas échéant. Si un message n’est pas disponible, bloque un intervalle de temps spécifié.

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

Paramètres

timeout
TimeSpan

Qui TimeSpan spécifie la durée pendant laquelle l’opération de réception doit se terminer avant le délai d’attente et la levée d’un TimeoutException.

Retours

Reçu Message .

Exceptions

La valeur spécifiée timeout est dépassée avant la fin de l’opération.

Le délai d’expiration spécifié est inférieur à zéro.

Exemples

Le code suivant montre comment implémenter cette méthode :

public Message Receive(TimeSpan timeout)
{
    Message message;
    while (true)
    {
        message = this.InnerChannel.Receive(timeout);
        if (ProcessReceivedMessage(ref message))
        {
            break;
        }
    }

    return message;
}

Remarques

Utilisez la méthode synchrone Receive lorsqu’il est acceptable que le thread actuel soit bloqué jusqu’à ce qu’il reçoive le message de demande ou dépasse l’intervalle de temps spécifié par timeout. Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l’application continue sans attendre la réception de la demande.

L’opération synchrone Receive est disponible avec ou sans délai d’expiration explicite.

Si un message n’est pas disponible, il bloque jusqu’à ce qu’un message soit disponible ou jusqu’à ce que le délai d’expiration soit dépassé.

Receive peut être appelé plusieurs fois ou simultanément. Receive Un seul appel peut être effectué pour chaque message reçu.

S’applique à