IInputChannel.WaitForMessage(TimeSpan) 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.
Restituisce un valore che indica se un messaggio è arrivato entro l'intervallo di tempo specificato.
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean
Parametri
- timeout
- TimeSpan
TimeSpan specifica l'intervallo di tempo di attesa massimo per l'arrivo di un messaggio prima della scadenza.
Restituisce
true
se un messaggio arriva 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 WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Commenti
La chiamata a WaitForMessage(TimeSpan) non comporta la ricezione o l'elaborazione di un messaggio in nessun'altra modalità.
Il metodo WaitForMessage(TimeSpan) esiste principalmente per gli scenari di transazione in cui l'utente desidera ricevere il messaggio utilizzando una transazione. In caso del semplice utilizzo di Receive, l'utente deve creare la transazione e quindi chiamare Receive e sperare che il messaggio arrivi prima del timeout della transazione, il che potrebbe non avvenire.
In alternativa, l'utente può chiamare WaitForMessage(TimeSpan) con il timeout desiderato (anche infinito), quindi all'arrivo di un messaggio, può aprire la transazione, chiamare Receive e avere la certezza di riavere il messaggio prima che la transazione scada.
Poiché il metodo è sincrono, blocca il thread corrente finché non viene reso disponibile un messaggio o non si verifica il timeout. Utilizzare il metodo WaitForMessage(TimeSpan) quando è possibile bloccare il thread corrente durante l'attesa dell'arrivo di un messaggio nella coda. Il thread è bloccato fino al timeout
specificato. Se si desidera che l'elaborazione dell'applicazione continui senza attendere, utilizzare il metodo asincrono BeginWaitForMessage(TimeSpan, AsyncCallback, Object).
Note per gli implementatori
L'operazione restituisce false
se viene superato il timeout
specificato, non un'eccezione di timeout.