Compartir a través de


IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Método

Definición

Devuelve un valor que indica si una solicitud se recibe antes de que transcurra 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 tiene una operación de solicitud antes de expirar y devolver false.

context
RequestContext

RequestContext recibido.

Devoluciones

true si se recibe un mensaje de solicitud antes de que transcurra un intervalo de tiempo especificado; de lo contrario false.

Ejemplos

El código siguiente 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

Utilice TryReceiveRequest(TimeSpan, RequestContext) cuando sea aceptable bloquear el subproceso actual mientras se espera a que llegue un mensaje de solicitud a la cola. El subproceso está bloqueado hasta el timeoutespecificado. Si es necesario que la aplicación siga realizando sus procesos sin esperar, hay que utilizar el método asincrónico BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object).

Notas a los implementadores

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

Se aplica a