IInputChannel.BeginWaitForMessage(TimeSpan, AsyncCallback, Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Comienza una operación asincrónica para esperar a que llegue un mensaje que tiene un tiempo de espera especificado y un objeto de estados asociados a él.
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
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 que hace referencia a la operación asincrónica de espera a que llegue un mensaje.
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 BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}
Comentarios
Si es necesario que la aplicación siga realizando sus procesos sin esperar a que llegue el mensaje, hay que utilizar el método asincrónico BeginWaitForMessage(TimeSpan, AsyncCallback, Object). Utilice el método sincrónico WaitForMessage(TimeSpan) cuando sea aceptable bloquear el subproceso actual mientras espera a que llegue un mensaje de solicitud a la cola. El subproceso está bloqueado hasta el timeout
especificado.
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 o se agote el tiempo de espera.
Notas a los implementadores
La operación devuelve false
si se supera el timeout
especificado, no una excepción de tiempo de espera.