IInputChannel.Receive Méthode

Définition

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

Surcharges

Receive()

Retourne le message reçu, le cas échéant. Si aucun message n'est disponible, elle reste bloquée pendant un intervalle de temps par défaut.

Receive(TimeSpan)

Retourne le message reçu, le cas échéant. Si aucun message n'est disponible, elle reste bloquée pendant un intervalle de temps spécifié.

Remarques

Utilisez la méthode Receive synchrone lorsque le thread en cours peut faire l’objet d’un blocage jusqu’à ce qu’il reçoive le message de demande ou jusqu’à ce que l’intervalle de temps spécifié par timeout soit dépassé. Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l'application se poursuive sans attendre la réception de la demande.

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

Si aucun message n'est disponible, elle reste bloquée jusqu'à ce qu'un message soit disponible ou jusqu'à ce que le délai d'attente soit dépassé.

Receive()

Retourne le message reçu, le cas échéant. Si aucun message n'est disponible, elle reste bloquée pendant 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

Message

Message reçu.

Exemples

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

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

Remarques

Utilisez la méthode Receive synchrone lorsque le thread en cours peut faire l’objet d’un blocage jusqu’à ce qu’il reçoive le message de demande ou jusqu’à ce que l’intervalle de temps spécifié par timeout soit dépassé. Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l'application se poursuive sans attendre la réception de la demande.

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

Si aucun message n'est disponible, elle reste bloquée jusqu'à ce qu'un message soit disponible ou jusqu'à ce que le délai d'attente soit dépassé.

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

S’applique à

Receive(TimeSpan)

Retourne le message reçu, le cas échéant. Si aucun message n'est disponible, elle reste bloquée pendant 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

TimeSpan qui spécifie le délai d'exécution de l'opération de réception avant dépassement du délai d’attente et levée d'une TimeoutException.

Retours

Message

Message reçu.

Exceptions

Le timeout spécifié est dépassé avant que l'opération soit effectuée.

Le délai d'attente spécifié est inférieur à zéro.

Exemples

Le code suivant illustre 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 Receive synchrone lorsque le thread en cours peut faire l’objet d’un blocage jusqu’à ce qu’il reçoive le message de demande ou jusqu’à ce que l’intervalle de temps spécifié par timeout soit dépassé. Utilisez la méthode asynchrone BeginReceive lorsque vous souhaitez que le traitement de l'application se poursuive sans attendre la réception de la demande.

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

Si aucun message n'est disponible, elle reste bloquée jusqu'à ce qu'un message soit disponible ou jusqu'à ce que le délai d'attente soit dépassé.

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

S’applique à