IInputChannel.WaitForMessage(TimeSpan) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
Le TimeSpan spécifie l'intervalle de temps maximal pour attendre l'arrivée d'un message avant dépassement du délai d'attente.
Retours
true
si un message est arrivé avant que le timeout
soit dépassé ; sinon false
.
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 bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Remarques
L'appel de WaitForMessage(TimeSpan) n'entraîne en aucune autre façon la réception ou le traitement d'un message.
La méthode WaitForMessage(TimeSpan) existe à l'origine pour les scénarios avec transaction où l'utilisateur souhaite recevoir le message à l'aide d'une transaction. Pour ce faire, lorsqu'il n'utilise que Receive normalement, l'utilisateur doit créer la transaction puis appeler Receive et espérer que le message arrive avant que la transaction n'expire, ce qui est impossible.
À la place, l’utilisateur peut appeler WaitForMessage(TimeSpan) et spécifier le délai d’attente (même infini) qu’il souhaite, puis lorsqu’un message arrive il peut ouvrir la transaction, appeler Receive et être certain qu’il peut récupérer le message avant que la transaction n’expire.
Cette méthode est synchrone et bloque par conséquent le thread en cours jusqu’à ce qu’un message soit disponible ou que le délai spécifié expire. Utilisez WaitForMessage(TimeSpan) lorsque le thread en cours peut faire l'objet d'un blocage en attendant l'arrivée d'un message dans la file d'attente. Le thread reste bloqué durant le timeout
spécifié. Si vous souhaitez que le traitement de l'application se poursuive sans attendre, utilisez la méthode BeginWaitForMessage(TimeSpan, AsyncCallback, Object) asynchrone.
Notes pour les responsables de l’implémentation
L'opération retourne false
si le timeout
spécifié est dépassé mais ne lève pas d'exception de délai d'attente.