IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) 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 une demande est reçue avant qu'un intervalle de temps spécifié ne soit écoulé.
public:
bool TryReceiveRequest(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::RequestContext ^ % context);
public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);
abstract member TryReceiveRequest : TimeSpan * RequestContext -> bool
Public Function TryReceiveRequest (timeout As TimeSpan, ByRef context As RequestContext) As Boolean
Paramètres
- timeout
- TimeSpan
TimeSpan qui spécifie le délai d'exécution de la réception d'une opération de demande avant dépassement du délai d’attente et retour de false
.
- context
- RequestContext
RequestContext reçu.
Retours
true
si un message de demande est reçu avant expiration de l'intervalle de temps spécifié ; sinon false
.
Exemples
Le code suivant illustre comment implémenter cette méthode :
public bool TryReceiveRequest(TimeSpan timeout, out RequestContext requestContext)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceiveRequest(timeout, out requestContext);
if (!result || ProcessRequestContext(ref requestContext))
{
break;
}
}
return result;
}
Remarques
Utilisez TryReceiveRequest(TimeSpan, RequestContext) lorsque le thread en cours peut faire l'objet d'un blocage en attendant l'arrivée d'un message de demande 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 BeginTryReceiveRequest(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é.