Udostępnij przez


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 operacja żądania przed przekroczeniem limitu czasu i zwróceniem falsewartości .

context
RequestContext

Odebrane RequestContext .

Zwraca

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 implementacji 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 można zablokować bieżący wątek podczas oczekiwania na nadejście komunikatu żądania do kolejki. 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 false wartość, jeśli określona timeout wartość zostanie przekroczona.

Dotyczy