IReplyChannel.WaitForRequest(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 de demande est reçu avant qu'un intervalle de temps spécifié ne soit écoulé.
public:
bool WaitForRequest(TimeSpan timeout);
public bool WaitForRequest (TimeSpan timeout);
abstract member WaitForRequest : TimeSpan -> bool
Public Function WaitForRequest (timeout As TimeSpan) As Boolean
Paramètres
- timeout
- TimeSpan
TimeSpan qui spécifie le délai d'exécution d'une opération de demande avant dépassement du délai d’attente et retour de false
.
Retours
true
si une demande est reçue avant expiration de l'intervalle de temps spécifié ; sinon false
.
Exemples
Le code suivant illustre comment implémenter cette méthode :
public bool WaitForRequest(TimeSpan timeout)
{
return this.InnerChannel.WaitForRequest(timeout);
}
Remarques
L'appel de WaitForRequest(TimeSpan) n'entraîne en aucune façon la réception ou le traitement d'un message de demande.
La méthode BeginWaitForRequest(TimeSpan, AsyncCallback, Object) 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 ReceiveRequest normalement, l’utilisateur doit créer la transaction puis appeler ReceiveRequest et espérer que le message arrive avant que la transaction n’expire, ce qui est impossible.
À la place, l’utilisateur peut appeler WaitForRequest(TimeSpan) et spécifier le délai d’attente (même infini), puis lorsqu’un message arrive il peut ouvrir la transaction, appeler ReceiveRequest et être certain qu’il peut récupérer le message avant que la transaction n’expire.
Utilisez WaitForRequest(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 BeginWaitForRequest(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é.