IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, был ли запрос получен до истечения заданного промежутка времени.
public:
bool TryReceiveRequest(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::RequestContext ^ % context);
public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);
abstract member TryReceiveRequest : TimeSpan * RequestContext -> bool
Public Function TryReceiveRequest (timeout As TimeSpan, ByRef context As RequestContext) As Boolean
Параметры
- timeout
- TimeSpan
Объект TimeSpan, указывающий, за какое время должно завершиться получение операции запроса, прежде чем истечет время ожидания и будет возвращено значение false
.
- context
- RequestContext
Полученное сообщение RequestContext.
Возвращаемое значение
Значение true
, если сообщение запроса получено до истечения заданного интервала времени; в противном случае — значение false
.
Примеры
В следующем примере кода показано, как реализовать этот метод.
public bool TryReceiveRequest(TimeSpan timeout, out RequestContext requestContext)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceiveRequest(timeout, out requestContext);
if (!result || ProcessRequestContext(ref requestContext))
{
break;
}
}
return result;
}
Комментарии
Используйте метод TryReceiveRequest(TimeSpan, RequestContext), если текущий поток можно заблокировать, пока ожидается поступление в очередь сообщения запроса. Поток заблокирован вплоть до указанного значения timeout
. Если работа приложения должна продолжаться без ожидания, используйте асинхронный метод BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object).
Примечания для тех, кто реализует этот метод
Операция возвращает значение false
, если превышено указанное время ожидания timeout
.