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.
Prova a ricevere un messaggio entro un 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
Oggetto IAsyncResult restituito da una chiamata a uno dei BeginReceive metodi .
Valori restituiti
true se un messaggio viene ricevuto prima del superamento di timeout ; in caso contrario false, .
Eccezioni
L'oggetto specificato timeout viene superato prima del completamento dell'operazione.
Il timeout specificato è minore di zero.
Esempio
Il codice seguente illustra 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 intende gestire i timeout e non solo generare nuovamente o eseguire il wrapping di TimeoutException, è necessario chiamare TryReceive(TimeSpan, Message) invece di Receive.
Se non si prevede di trattare i timeout in modo speciale, è sufficiente chiamare Receive, altrimenti si perderanno le informazioni sull'errore.