Share via


IReplyChannel.BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) Método

Definição

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

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

Parâmetros

timeout
TimeSpan

O TimeSpan que especifica quanto tempo a operação de solicitação de recebimento precisa concluir antes de atingir o tempo limite e retornar false.

callback
AsyncCallback

O representante de AsyncCallback que recebe a notificação do recebimento assíncrono que uma operação de solicitação conclui.

state
Object

Um objeto, especificado pelo aplicativo, que contém informações de estado associadas ao recebimento assíncrono de uma operação de solicitação.

Retornos

O IAsyncResult que referencia a operação de solicitação de recebimento assíncrono.

Exemplos

O código a seguir ilustra como implementar esse método:

public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);
    result.Begin();
    return result;
}

Comentários

Use o método assíncrono BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) quando precisar que o processamento do aplicativo continue sem esperar. Use um dos métodos TryReceiveRequest(TimeSpan, RequestContext) síncronos quando for aceitável que o thread atual seja bloqueado enquanto ele responde à mensagem de solicitação ou até que o intervalo de tempo limite seja excedido.

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.

Aplica-se a