IInputChannel.TryReceive(TimeSpan, Message) 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.
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 de l'une des méthodes BeginReceive.
Retours
true
si un message est reçu 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 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 souhaitez gérer des délais d'attente et ne pas seulement lever à nouveau ou encapsuler l'TimeoutException, vous devez appeler TryReceive(TimeSpan, Message) au lieu de Receive.
Si vous ne souhaitez pas traiter spécialement des délais d'attente, appelez uniquement Receive, sinon vous perdrez des informations relatives à l'erreur.