Share via


IInputChannel.BeginReceive Método

Definição

Inicia uma operação de recebimento assíncrona.

Sobrecargas

BeginReceive(AsyncCallback, Object)

Inicia uma operação assíncrona para receber uma mensagem que tem um objeto de estado associado.

BeginReceive(TimeSpan, AsyncCallback, Object)

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

Comentários

Use o método assíncrono BeginReceive quando quiser que o processamento do aplicativo continue sem esperar que a solicitação seja recebida. Use o método síncrono Receive quando for aceitável que o thread atual seja bloqueado até que a mensagem de solicitação seja recebida ou o intervalo de tempo especificado pelo timeout tenha sido excedido. A operação assíncrona está disponível com ou sem um tempo limite explícito.

BeginReceive(AsyncCallback, Object)

Origem:
IInputChannel.cs
Origem:
IInputChannel.cs
Origem:
IInputChannel.cs

Inicia uma operação assíncrona para receber uma mensagem que tem um objeto de estado associado.

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

Parâmetros

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

O IAsyncResult que faz referência à recepção de mensagens assíncronas.

Exemplos

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

public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
    return BeginReceive(DefaultReceiveTimeout, callback, state);
}

Comentários

Use o método assíncrono BeginReceive quando quiser que o processamento do aplicativo continue sem esperar que a solicitação seja recebida. Use o método síncrono Receive quando for aceitável que o thread atual seja bloqueado até que a mensagem de solicitação seja recebida ou o intervalo de tempo especificado pelo timeout tenha sido excedido. A operação assíncrona está disponível com ou sem um tempo limite explícito.

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.

Aplica-se a

BeginReceive(TimeSpan, AsyncCallback, Object)

Origem:
IInputChannel.cs
Origem:
IInputChannel.cs
Origem:
IInputChannel.cs

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

public:
 IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (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

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

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 esse método:

public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

Comentários

Use o método assíncrono BeginReceive quando quiser que o processamento do aplicativo continue sem esperar que a solicitação seja recebida. Use o método síncrono Receive quando for aceitável que o thread atual seja bloqueado até que a mensagem de solicitação seja recebida ou o intervalo de tempo especificado pelo timeout tenha sido excedido. A operação assíncrona está disponível com ou sem um tempo limite explícito.

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 gerará um TimeoutException se o especificado timeout for excedido antes de ser concluído.

Aplica-se a