IReplyChannel.WaitForRequest(TimeSpan) Metodo

Definizione

Restituisce un valore che indica se un messaggio di richiesta viene ricevuto prima della scadenza dell'intervallo di tempo specificato.

public:
 bool WaitForRequest(TimeSpan timeout);
public bool WaitForRequest (TimeSpan timeout);
abstract member WaitForRequest : TimeSpan -> bool
Public Function WaitForRequest (timeout As TimeSpan) As Boolean

Parametri

timeout
TimeSpan

TimeSpan specifica il tempo entro il quale un'operazione di richiesta deve essere completata, prima di scadere e restituire false.

Restituisce

true se viene ricevuta una richiesta prima della scadenza dell'intervallo di tempo specificato; in caso contrario false.

Esempio

Nell'esempio di codice seguente viene illustrato come implementare questo metodo:

public bool WaitForRequest(TimeSpan timeout)
{
    return this.InnerChannel.WaitForRequest(timeout);
}

Commenti

La chiamata a WaitForRequest(TimeSpan) non genera un messaggio di richiesta ricevuto o elaborato in qualsiasi modalità.

Il metodo BeginWaitForRequest(TimeSpan, AsyncCallback, Object) esiste principalmente per gli scenari di transazione in cui l'utente desidera ricevere il messaggio utilizzando una transazione. In caso del semplice utilizzo di ReceiveRequest, l'utente deve creare la transazione e quindi chiamare ReceiveRequest e sperare che il messaggio arrivi prima del timeout della transazione, il che potrebbe non avvenire.

In alternativa, l'utente può chiamare WaitForRequest(TimeSpan) e specificare il timeout (anche infinito), quindi all'arrivo di un messaggio, può aprire la transazione, chiamare ReceiveRequest e avere la certezza di riavere il messaggio prima che la transazione scada.

Utilizzare il metodo WaitForRequest(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 BeginWaitForRequest(TimeSpan, AsyncCallback, Object).

Note per gli implementatori

L'operazione restituisce false se viene superato il timeout specificato.

Si applica a