IInputChannel.WaitForMessage(TimeSpan) Método

Definição

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.

Aplica-se a