IReplyChannel.WaitForRequest(TimeSpan) Метод

Определение

Возвращает значение, указывающее, было ли сообщение запроса получено до истечения заданного промежутка времени.

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

Параметры

timeout
TimeSpan

Объект TimeSpan, указывающий, за какое время должна завершиться операция запроса, прежде чем истечет время ожидания и будет возвращено значение false.

Возвращаемое значение

Boolean

Значение true, если запрос получен до истечения заданного интервала времени; в противном случае — значение false.

Примеры

В следующем примере кода показано, как реализовать этот метод.

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

Комментарии

Вызов метода WaitForRequest(TimeSpan) не приводит к получению сообщения запроса или его обработке.

Метод BeginWaitForRequest(TimeSpan, AsyncCallback, Object) в основном существует для транзакционных сценариев, в которых пользователю требуется получать это сообщение в рамках транзакции. Если, как обычно, использовать для этого метод ReceiveRequest, пользователю придется сначала создать транзакцию, а затем вызвать метод ReceiveRequest и надеяться, что сообщение будет получено до истечения времени ожидания транзакции, что может быть невозможно.

Вместо этого пользователь может вызвать метод WaitForRequest(TimeSpan) и задать время ожидания (возможно, бесконечное), а затем, когда придет сообщение, открыть транзакцию, вызвать метод ReceiveRequest и быть уверенным, что ответное сообщение будет получено до истечения времени ожидания транзакции.

Метод WaitForRequest(TimeSpan) используется, если текущий поток можно заблокировать на время, пока ожидается поступление сообщения в очередь. Поток заблокирован вплоть до указанного значения timeout. Если работа приложения должна продолжаться без ожидания, используйте асинхронный метод BeginWaitForRequest(TimeSpan, AsyncCallback, Object).

Примечания для тех, кто реализует этот метод

Операция возвращает значение false, если превышено указанное время ожидания timeout.

Применяется к