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 de tiempo especificado.
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 máximo de tiempo para esperar a que llegue un mensaje antes de que se agote el tiempo de espera.
Devoluciones
true es si ha llegado un mensaje antes timeout de que se haya superado; de lo contrario false, es .
Excepciones
El especificado timeout se supera antes de que se complete la operación.
El tiempo de espera especificado es menor que cero.
Ejemplos
En el código siguiente se muestra cómo implementar este método:
public bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
Comentarios
La llamada WaitForMessage(TimeSpan) no da lugar a que se reciba o procese un mensaje de ninguna otra manera.
El WaitForMessage(TimeSpan) método existe principalmente para escenarios transaccionados en los que el usuario quiere recibir el mensaje mediante una transacción. Cuando se usa normalmente Receive para esto, el usuario debe crear la transacción y, a continuación, llamar Receive a y esperar que el mensaje llegue antes de que se agote el tiempo de espera de la transacción, lo que puede que no sea posible.
En su lugar, el usuario puede llamar WaitForMessage(TimeSpan) con el tiempo de espera que desee (incluso infinito), cuando llegue un mensaje puede abrir la transacción, llamar Receive y estar seguro de que puede recuperar el mensaje antes de que expire la transacción.
Este método es sincrónico, por lo que bloquea el subproceso actual hasta que haya un mensaje disponible o se agote el tiempo de espera. Use WaitForMessage(TimeSpan) cuando sea aceptable que el subproceso actual se bloquee mientras espera a que llegue un mensaje a la cola. El subproceso está bloqueado hasta el especificado timeout. Si necesita que el procesamiento de la aplicación continúe sin esperar, use el método asincrónico BeginWaitForMessage(TimeSpan, AsyncCallback, Object) .
Notas a los implementadores
La operación devuelve false si se supera el especificado timeout , no una excepción de tiempo de espera.