IInputChannel.WaitForMessage(TimeSpan) 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í.
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
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 timeout
especificado. 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.