Condividi tramite


IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Metodo

Definizione

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

public:
 bool TryReceiveRequest(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::RequestContext ^ % context);
public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);
abstract member TryReceiveRequest : TimeSpan * RequestContext -> bool
Public Function TryReceiveRequest (timeout As TimeSpan, ByRef context As RequestContext) As Boolean

Parametri

timeout
TimeSpan

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

context
RequestContext

RequestContext ricevuto.

Restituisce

true se viene ricevuto un messaggio di 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 TryReceiveRequest(TimeSpan timeout, out RequestContext requestContext)
{
    bool result;

    while (true)
    {
        result = this.InnerChannel.TryReceiveRequest(timeout, out requestContext);
        if (!result || ProcessRequestContext(ref requestContext))
        {
            break;
        }
    }

    return result;
}

Commenti

Utilizzare un metodo TryReceiveRequest(TimeSpan, RequestContext) quando è possibile bloccare il thread corrente durante l'attesa dell'arrivo di un messaggio di richiesta nella coda. Il thread è bloccato fino al timeout specificato. Se si desidera che l'elaborazione dell'applicazione continui senza attendere, utilizzare il metodo asincrono BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object).

Note per gli implementatori

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

Si applica a