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
.
Возвращаемое значение
Значение 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
.