IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Metoda

Definicja

Zwraca wartość wskazującą, czy żądanie jest odbierane przed upływem określonego interwału czasu.

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

Określa TimeSpan , jak długo musi zostać ukończona odbieranie operacji żądania przed upływem limitu czasu i zwróceniem polecenia false.

context
RequestContext

Odebrano RequestContext .

Zwraca

Boolean

true jeśli komunikat żądania zostanie odebrany przed upływem określonego interwału czasu; w przeciwnym razie false.

Przykłady

Poniższy kod ilustruje sposób implementowania tej metody:

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

Uwagi

Użyj TryReceiveRequest(TimeSpan, RequestContext) polecenia , gdy bieżący wątek jest akceptowalny, aby był blokowany podczas oczekiwania na odebranie komunikatu żądania w kolejce. Wątek jest blokowany do określonego timeoutelementu . Jeśli potrzebujesz przetwarzania aplikacji, aby kontynuować bez oczekiwania, użyj metody asynchronicznej BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) .

Uwagi dotyczące implementowania

Operacja zwraca wartość false , jeśli określona timeout wartość jest przekroczona.

Dotyczy