IInputChannel.TryReceive(TimeSpan, Message) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Tenta di ricevere un messaggio entro l'intervallo di tempo specificato.
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
Parametri
- timeout
- TimeSpan
Interfaccia IAsyncResult restituita da una chiamata a uno dei metodi BeginReceive.
Restituisce
true
se un messaggio viene ricevuto prima che il timeout
sia scaduto. In caso contrario false
.
Eccezioni
Il timeout
specificato è stato superato prima del completamento dell'operazione.
Il timeout specificato è minore di zero.
Esempio
Nell'esempio di codice seguente viene illustrato come implementare questo metodo:
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;
}
Commenti
Se si prevede di gestire i timeout e non solo di generare di nuovo o eseguire il wrapping di TimeoutException, è necessario chiamare TryReceive(TimeSpan, Message) anziché Receive.
Se i timeout non verranno trattati in modo speciale, chiamare solo Receive, in caso contrario le informazioni sull'errore andranno perdute.