Compartir a través de


IInputChannel.WaitForMessage(TimeSpan) Método

Definición

Devuelve un valor que indica si un mensaje ha llegado dentro de un intervalo especificado de hora.

public:
 bool WaitForMessage(TimeSpan timeout);
public bool WaitForMessage (TimeSpan timeout);
abstract member WaitForMessage : TimeSpan -> bool
Public Function WaitForMessage (timeout As TimeSpan) As Boolean

Parámetros

timeout
TimeSpan

TimeSpan especifica el intervalo de tiempo máximo para esperar a que llegue un mensaje antes de expirar.

Devoluciones

Boolean

true si llega un mensaje antes de que se haya superado timeout; de lo contrario false.

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 bool WaitForMessage(TimeSpan timeout)
{
    return this.InnerChannel.WaitForMessage(timeout);
}

Comentarios

Llamar a WaitForMessage(TimeSpan) no resulta en un mensaje recibido o procesado de otra forma.

El método WaitForMessage(TimeSpan) existe principalmente para los escenarios con transacción donde donde el usuario desea recibir el mensaje mediante una transacción. Al utilizar normalmente sólo Receive para esto, el usuario debe crear la transacción y, a continuación, llamar a Receive y esperar que el mensaje llegue antes de que expire la transacción, lo que puede no ser posible.

Si no, el usuario puede llamar a WaitForMessage(TimeSpan) y especificar el tiempo de espera deseado (incluso infinito); a continuación, cuando llega un mensaje, puede abrir la transacción, llamar a Receive y estar seguro que pueden recibir el mensaje antes de que la transacción expire.

Este método es sincrónico, por lo que se bloquea el subproceso actual hasta que haya un mensaje disponible o hasta que finalice el tiempo de espera especificado. Utilice WaitForMessage(TimeSpan) cuando se acepte bloquear el subproceso actual mientras se espera a que llegue un mensaje a la cola. El subproceso está bloqueado hasta el timeoutespecificado. Si es necesario que la aplicación siga realizando sus procesos sin esperar, hay que utilizar el método asincrónico BeginWaitForMessage(TimeSpan, AsyncCallback, Object).

Notas a los implementadores

La operación devuelve false si se supera el timeout especificado, no una excepción de tiempo de espera.

Se aplica a