IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Método

Definición

Devuelve un valor que indica si se recibe una solicitud antes de que transcurre un intervalo de tiempo especificado.

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

Parámetros

timeout
TimeSpan

TimeSpan que especifica cuánto tiempo debe completarse la recepción de una operación de solicitud antes de agotar el tiempo de espera y devolver false.

context
RequestContext

El RequestContext objeto recibido.

Devoluciones

true si se recibe un mensaje de solicitud antes de que transcurre el intervalo de tiempo especificado; de lo contrario false, es .

Ejemplos

En el código siguiente se muestra cómo implementar este método:

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;
}

Comentarios

Use TryReceiveRequest(TimeSpan, RequestContext) cuando sea aceptable que el subproceso actual se bloquee mientras espera a que llegue un mensaje de solicitud a la cola. El subproceso está bloqueado hasta el especificado timeout. Si necesita que el procesamiento de la aplicación continúe sin esperar, use el método asincrónico BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) .

Notas a los implementadores

La operación devuelve false si se supera el especificado timeout .

Se aplica a