Sdílet prostřednictvím


IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Metoda

Definice

Vrátí hodnotu, která označuje, zda je požadavek přijat před uplynutím zadaného časového intervalu.

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

Parametry

timeout
TimeSpan

Určuje TimeSpan , jak dlouho má trvat příjem operace požadavku, než vyprší časový limit a vrátí false.

context
RequestContext

Přijatý RequestContext .

Návraty

true pokud je zpráva požadavku přijata před uplynutím zadaného časového intervalu; jinak false.

Příklady

Následující kód ukazuje, jak tuto metodu implementovat:

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

Poznámky

Použijte TryReceiveRequest(TimeSpan, RequestContext) , pokud je přijatelné, aby aktuální vlákno bylo blokováno při čekání na doručení zprávy požadavku do fronty. Vlákno je blokováno až do zadaného timeout. Pokud potřebujete, aby zpracování aplikace pokračovalo bez čekání, použijte asynchronní BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) metodu.

Poznámky pro implementátory

Operace vrátí false , pokud je překročena zadaná timeout hodnota.

Platí pro