IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Método

Definição

Devolve um valor que indica se um pedido é recebido antes de um intervalo de tempo 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

O TimeSpan que especifica quanto tempo a receção de uma operação de pedido tem para ser concluída antes de expirar e devolver false.

context
RequestContext

O RequestContext recebido.

Devoluções

true se uma mensagem de pedido for recebida antes do intervalo de tempo especificado; caso contrário false.

Exemplos

O seguinte código ilustra como 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;
}

Observações

TryReceiveRequest(TimeSpan, RequestContext) Use quando for aceitável que a thread atual seja bloqueada enquanto espera que uma mensagem de pedido chegue à fila. A thread é bloqueada até ao especificado timeout. Se precisares que o processamento da candidatura continue sem esperar, usa o método assíncrono BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) .

Notas para Implementadores

A operação retorna false se o especificado timeout for ultrapassado.

Aplica-se a