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 odbieranie operacji żądania przed upływem limitu czasu i zwróceniem polecenia false.
- context
- RequestContext
Odebrano 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 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.