Partilhar via


IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Método

Definição

Retorna um valor que indica se uma solicitação é recebida antes que um intervalo de tempo especificado seja decorrido.

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

O TimeSpan que especifica quanto tempo o recebimento de uma operação de solicitação precisa concluir antes de atingir o tempo limite e retornar false.

context
RequestContext

O RequestContext recebido.

Retornos

true se uma mensagem de solicitação for recebida antes que o intervalo de tempo especificado seja decorrido, caso contrário, false.

Exemplos

O código a seguir ilustra como implementar esse 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;
}

Comentários

Use TryReceiveRequest(TimeSpan, RequestContext) quando for aceitável que o thread atual seja bloqueado enquanto aguarda a chegada de uma mensagem de solicitação na fila. O thread é bloqueado até o especificado timeout. Se você precisar que o processamento do aplicativo continue sem esperar, use o método assíncrono BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) .

Notas aos Implementadores

A operação retornará false se o especificado timeout for excedido.

Aplica-se a