IInputChannel.BeginReceive Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
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.