Aracılığıyla paylaş


IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Yöntem

Tanım

Belirtilen zaman aralığından önce bir isteğin alınıp alınmadığını gösteren bir değer döndürür.

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

Parametreler

timeout
TimeSpan

bir TimeSpan istek işleminin zaman aşımına uğramadan ve döndürülmeden falseönce ne kadar süreyle tamamlanmasının gerekdiğini belirtir.

context
RequestContext

Alınan RequestContext .

Döndürülenler

true belirtilen süre dolmadan önce bir istek iletisi alınırsa; aksi takdirde false.

Örnekler

Aşağıdaki kodda bu yöntemin nasıl uygulandığı gösterilmektedir:

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;
}

Açıklamalar

Bir istek iletisinin kuyruğa gelmesini beklerken geçerli iş parçacığının engellenmesi kabul edilebilir olduğunda kullanın TryReceiveRequest(TimeSpan, RequestContext) . İş parçacığı belirtilen timeoutdeğerine kadar engellenir. Uygulama işlemenin beklemeden devam etmesi gerekiyorsa zaman uyumsuz BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) yöntemini kullanın.

Uygulayanlara Notlar

Belirtilen timeout değerin aşılması durumunda işlem döndürülüyorfalse.

Şunlara uygulanır