IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.