IInputChannel.TryReceive(TimeSpan, Message) Méthode

Définition

Tente de recevoir un message dans un intervalle de temps spécifié.

public:
 bool TryReceive(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::Message ^ % message);
public bool TryReceive(TimeSpan timeout, out System.ServiceModel.Channels.Message message);
abstract member TryReceive : TimeSpan * Message -> bool
Public Function TryReceive (timeout As TimeSpan, ByRef message As Message) As Boolean

Paramètres

timeout
TimeSpan

IAsyncResult Retourné par un appel à l’une des BeginReceive méthodes.

message
Message

Reçu Message .

Retours

true si un message est reçu avant le timeout dépassement ; sinon false.

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 bool TryReceive(TimeSpan timeout, out Message message)
{
    bool result;
    while (true)
    {
        result = this.InnerChannel.TryReceive(timeout, out message);
        if (ProcessReceivedMessage(ref message))
        {
            break;
        }
    }

    return result;
}

Remarques

Si vous allez gérer les délais d’expiration et pas seulement jeter ou encapsuler le TimeoutException, alors vous devez appeler TryReceive(TimeSpan, Message) au lieu de Receive.

Si vous ne traitez pas les délais d’expiration spécialement, appelez Receivesimplement , sinon vous perdrez des informations d’erreur.

S’applique à