Share via


IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Método

Definição

Inicia uma operação assíncrona para aguardar o recebimento de uma mensagem que tem um tempo limite e um objeto de estado especificados associados.

public:
 IAsyncResult ^ BeginWaitForMessage(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWaitForMessage (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginWaitForMessage : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginWaitForMessage (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

timeout
TimeSpan

O TimeSpan especifica o intervalo de tempo durante o qual aguardar a disponibilidade de uma mensagem.

callback
AsyncCallback

O delegado de AsyncCallback que receberá a notificação da conclusão da operação assíncrona.

state
Object

Um objeto, especificado pelo aplicativo, que contém informações associadas à operação assíncrona.

Retornos

IAsyncResult

O IAsyncResult que referencia a operação assíncrona para aguardar uma mensagem chegar.

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 IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
    return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}

Comentários

Use o método assíncrono BeginWaitForMessage(TimeSpan, AsyncCallback, Object) se precisar que o processamento do aplicativo continue sem aguardar a chegada da mensagem. Use o método síncrono 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.

Esse método recebe notificação, por meio de um retorno de chamada, da identidade do manipulador de eventos para a operação. A operação não é concluída até que uma mensagem fique disponível no canal ou o tempo limite ocorra.

Notas aos Implementadores

A operação retornará false se o especificado timeout for excedido, não uma exceção de tempo limite.

Aplica-se a