IInputChannel.WaitForMessage(TimeSpan) Méthode

Définition

Retourne une valeur qui indique si un message est arrivé dans un intervalle de temps spécifié.

public:
 bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage(TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean

Paramètres

timeout
TimeSpan

Spécifie TimeSpan l’intervalle maximal de temps d’attente pour qu’un message arrive avant l’expiration du délai d’attente.

Retours

true si un message est arrivé 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 WaitForMessage(TimeSpan timeout)
{
    return this.InnerChannel.WaitForMessage(timeout);
}

Remarques

L’appel WaitForMessage(TimeSpan) n’entraîne pas la réception ou le traitement d’un message d’une autre manière.

La WaitForMessage(TimeSpan) méthode existe principalement pour les scénarios traités où l’utilisateur souhaite recevoir le message à l’aide d’une transaction. En cas d’utilisation normale Receive pour cela, l’utilisateur doit créer la transaction, puis appeler Receive et espérer que le message arrive avant l’expiration de la transaction, ce qui peut ne pas être possible.

Au lieu de cela, l’utilisateur peut appeler WaitForMessage(TimeSpan) avec le délai d’expiration souhaité (même infini), puis lorsqu’un message arrive, il peut ouvrir la transaction, appeler Receive et être sûr qu’il peut récupérer le message avant l’expiration de la transaction.

Cette méthode est synchrone. Elle bloque donc le thread actuel jusqu’à ce qu’un message soit disponible ou que le délai d’attente se produise. Utilisez WaitForMessage(TimeSpan) lorsqu’il est acceptable que le thread actuel soit bloqué pendant qu’il attend qu’un message arrive dans la file d’attente. Le thread est bloqué jusqu’au thread spécifié timeout. Si vous avez besoin du traitement de l’application pour continuer sans attendre, utilisez la méthode asynchrone BeginWaitForMessage(TimeSpan, AsyncCallback, Object) .

Notes pour les responsables de l’implémentation

L’opération retourne false si le paramètre spécifié timeout est dépassé, et non une exception de délai d’expiration.

S’applique à