Поделиться через


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.

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