IInputChannel.BeginReceive Método

Definición

Comienza una operación de recepción asincrónica.

Sobrecargas

BeginReceive(AsyncCallback, Object)

Comienza una operación asincrónica para recibir un mensaje que tiene un objeto de estados asociado a él.

BeginReceive(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para recibir un mensaje que tiene un tiempo de espera especificado y un objeto de estados asociados a él.

Comentarios

Si desea que la aplicación siga realizando sus procesos sin esperar a recibir la solicitud, hay que utilizar el método asincrónico BeginReceive. Utilice el método Receive sincrónico cuando sea aceptable bloquear el subproceso actual hasta que se reciba el mensaje de solicitud o se haya superado el intervalo de tiempo especificado por timeout. La operación asincrónica está disponible con o sin un tiempo de espera explícito.

BeginReceive(AsyncCallback, Object)

Comienza una operación asincrónica para recibir un mensaje que tiene un objeto de estados asociado a él.

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

El delegado AsyncCallback que recibe la notificación de la finalización de la operación asincrónica.

state
Object

Objeto, especificado por la aplicación, que contiene información de estado asociada a la operación asincrónica.

Devoluciones

IAsyncResult

IAsyncResult que hace referencia a la recepción asincrónica de un mensaje.

Ejemplos

El código siguiente muestra cómo implementar este método:

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

Comentarios

Si desea que la aplicación siga realizando sus procesos sin esperar a recibir la solicitud, hay que utilizar el método asincrónico BeginReceive. Utilice el método Receive sincrónico cuando sea aceptable bloquear el subproceso actual hasta que se reciba el mensaje de solicitud o se haya superado el intervalo de tiempo especificado por timeout. La operación asincrónica está disponible con o sin un tiempo de espera explícito.

Este método recibe una notificación, mediante una devolución de llamada, de la identidad del controlador de eventos de la operación. La operación no se completa hasta que haya un mensaje disponible en el canal.

Se aplica a

BeginReceive(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para recibir un mensaje que tiene un tiempo de espera especificado y un objeto de estados asociados a él.

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

TimeSpan que especifica el intervalo de tiempo que hay que esperar a que haya un mensaje disponible.

callback
AsyncCallback

El delegado AsyncCallback que recibe la notificación de la finalización de la operación asincrónica.

state
Object

Objeto, especificado por la aplicación, que contiene información de estado asociada a la operación asincrónica.

Devoluciones

IAsyncResult

IAsyncResult que hace referencia a la operación de recepción asincrónica.

Excepciones

Se supera el timeout especificado antes de que se complete la operación.

El tiempo de espera especificado es menor que cero.

Ejemplos

El código siguiente muestra cómo implementar este 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;
}

Comentarios

Si desea que la aplicación siga realizando sus procesos sin esperar a recibir la solicitud, hay que utilizar el método asincrónico BeginReceive. Utilice el método Receive sincrónico cuando sea aceptable bloquear el subproceso actual hasta que se reciba el mensaje de solicitud o se haya superado el intervalo de tiempo especificado por timeout. La operación asincrónica está disponible con o sin un tiempo de espera explícito.

La operación no se completa hasta que haya un mensaje disponible en el canal o se agote el tiempo de espera.

Notas a los implementadores

La operación inicia TimeoutException si se supera el timeout especificado antes de que se complete.

Se aplica a