IReplyChannel.WaitForRequest(TimeSpan) 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 mensagem de solicitação é recebida antes que um intervalo de tempo especificado seja decorrido.
public:
bool WaitForRequest(TimeSpan timeout);
public bool WaitForRequest (TimeSpan timeout);
abstract member WaitForRequest : TimeSpan -> bool
Public Function WaitForRequest (timeout As TimeSpan) As Boolean
Parâmetros
- timeout
- TimeSpan
O TimeSpan que especifica quanto tempo uma operação de solicitação precisa concluir antes de atingir o tempo limite e retornar false
.
Retornos
true
se uma 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 WaitForRequest(TimeSpan timeout)
{
return this.InnerChannel.WaitForRequest(timeout);
}
Comentários
Chamar WaitForRequest(TimeSpan) não resulta em uma mensagem de solicitação sendo recebida ou processada de forma alguma.
O BeginWaitForRequest(TimeSpan, AsyncCallback, Object) método existe principalmente para cenários transacionados em que o usuário deseja receber a mensagem usando uma transação. Ao usar normalmente ReceiveRequest para isso, o usuário deve criar a transação e, em seguida, chamar ReceiveRequest e esperar que a mensagem chegue antes do tempo limite da transação, o que pode não ser possível.
Em vez disso, o usuário pode chamar WaitForRequest(TimeSpan) e especificar o tempo limite (mesmo infinito) e, quando uma mensagem chegar, ele poderá abrir a transação, chamar ReceiveRequest e ter certeza de que pode receber a mensagem de volta antes que a transação expire.
Use WaitForRequest(TimeSpan) quando for aceitável que o thread atual seja bloqueado enquanto aguarda a chegada de uma mensagem 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 BeginWaitForRequest(TimeSpan, AsyncCallback, Object) .
Notas aos Implementadores
A operação retornará false
se o especificado timeout
for excedido.