IInputChannel.WaitForMessage(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 foi recebida dentro de um intervalo de tempo especificado.
public:
bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean
Parâmetros
- timeout
- TimeSpan
O TimeSpan especifica o intervalo de tempo máximo durante o qual aguardar a chegada de uma mensagem antes do tempo limite.
Retornos
true
se uma mensagem chegar antes que o timeout
seja excedido; caso contrário false
.
Exceções
O timeout
especificado é ultrapassado antes que a operação seja concluída.
O tempo limite especificado é menor que zero.
Exemplos
O código a seguir ilustra como implementar este método:
public bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Comentários
A chamada WaitForMessage(TimeSpan) não resulta em uma mensagem sendo recebida ou processada de outra forma.
O WaitForMessage(TimeSpan) método existe principalmente para cenários transacionados em que o usuário deseja receber a mensagem usando uma transação. Ao usar normalmente Receive para isso, o usuário deve criar a transação e, em seguida, chamar Receive 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 ligar WaitForMessage(TimeSpan) com o tempo limite desejado (até mesmo infinito) e, quando uma mensagem chegar, poderá abrir a transação, ligar Receive e ter certeza de que pode receber a mensagem de volta antes que a transação expire.
Esse método é síncrono, portanto, bloqueia o thread atual até que uma mensagem esteja disponível ou o tempo limite ocorra. Use WaitForMessage(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 aguardar, use o método assíncrono BeginWaitForMessage(TimeSpan, AsyncCallback, Object) .
Notas aos Implementadores
A operação retornará false
se o especificado timeout
for excedido, não uma exceção de tempo limite.