IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 false
wartoś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 timeout
elementu . 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.