IInputChannel.WaitForMessage(TimeSpan) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve um valor que indica se uma mensagem chegou 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
Especifica TimeSpan o intervalo máximo de tempo para esperar que uma mensagem chegue antes de expirar.
Devoluções
true se uma mensagem tiver chegado antes de ter timeout sido ultrapassada; caso contrário false.
Exceções
O especificado timeout é ultrapassado antes da operação ser concluída.
O tempo de espera especificado é inferior a zero.
Exemplos
O seguinte código ilustra como implementar este método:
public bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Observações
A chamada WaitForMessage(TimeSpan) não resulta na receção ou processamento de uma mensagem de outra forma.
O WaitForMessage(TimeSpan) método existe principalmente para cenários transacionados em que o utilizador quer receber a mensagem através de uma transação. Ao usar apenas Receive o normal para isto, o utilizador deve criar a transação e depois ligar, Receive esperando que a mensagem chegue antes do prazo da transação, o que pode não ser possível.
Em vez disso, o utilizador pode ligar WaitForMessage(TimeSpan) com o tempo de espera que quiser (mesmo infinito), depois, quando chegar uma mensagem, pode abrir a transação, ligar Receive e ter a confiança de que pode receber a mensagem de volta antes da transação expirar.
Este método é síncrono, pelo que bloqueia a thread atual até que uma mensagem esteja disponível ou ocorra o timeout.
WaitForMessage(TimeSpan) Use quando for aceitável que o fio atual seja bloqueado enquanto espera que uma mensagem 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 BeginWaitForMessage(TimeSpan, AsyncCallback, Object) .
Notas para Implementadores
A operação retorna false se o especificado timeout for ultrapassado, não uma exceção de timeout.