IInputChannel.TryReceive(TimeSpan, Message) 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.
Próbuje odebrać komunikat w określonym przedziale czasu.
public:
bool TryReceive(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::Message ^ % message);
public bool TryReceive (TimeSpan timeout, out System.ServiceModel.Channels.Message message);
abstract member TryReceive : TimeSpan * Message -> bool
Public Function TryReceive (timeout As TimeSpan, ByRef message As Message) As Boolean
Parametry
- timeout
- TimeSpan
Element IAsyncResult zwracany przez wywołanie jednej z BeginReceive metod.
Zwraca
true
jeśli komunikat zostanie odebrany przed przekroczeniem; timeout
w przeciwnym razie false
.
Wyjątki
Określony timeout
parametr zostanie przekroczony przed ukończeniem operacji.
Określony limit czasu jest mniejszy niż zero.
Przykłady
Poniższy kod ilustruje sposób implementacji tej metody:
public bool TryReceive(TimeSpan timeout, out Message message)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceive(timeout, out message);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return result;
}
Uwagi
Jeśli zamierzasz obsługiwać limity czasu, a nie tylko ponownie zgłaszać lub opakowować element , należy wywołać metodę TimeoutExceptionTryReceive(TimeSpan, Message) zamiast Receive.
Jeśli nie będziesz traktować limitów czasu specjalnie, po prostu wywołaj Receivemetodę , w przeciwnym razie utracisz informacje o błędzie.