Share via


IReplyChannel.WaitForRequest(TimeSpan) Método

Definición

Devuelve un valor que indica si un mensaje de solicitud se recibe antes de que transcurra un intervalo de tiempo especificado.

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

Parámetros

timeout
TimeSpan

TimeSpan que especifica cuánto tiempo tiene una operación de solicitud antes de expirar y devolver false.

Devoluciones

true si se recibe una solicitud antes de que transcurra un intervalo de tiempo especificado; de lo contrario false.

Ejemplos

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

public bool WaitForRequest(TimeSpan timeout)
{
    return this.InnerChannel.WaitForRequest(timeout);
}

Comentarios

Llamar WaitForRequest(TimeSpan) no resulta en un mensaje de solicitud recibido o procesado de forma alguna.

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

En su lugar, el usuario puede llamar WaitForRequest(TimeSpan) y especificar el tiempo de espera (incluso infinito); a continuación, cuando llega un mensaje, puede abrir la transacción, llamar ReceiveRequest y estar seguro que pueden recibir el mensaje antes de que la transacción expire.

Utilice WaitForRequest(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 BeginWaitForRequest(TimeSpan, AsyncCallback, Object).

Notas a los implementadores

La operación devuelve false si se supera el timeout especificado.

Se aplica a