IInputChannel.TryReceive(TimeSpan, Message) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Versucht, eine Nachricht innerhalb eines angegebenen Zeitintervalls zu empfangen.
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
Parameter
- timeout
- TimeSpan
IAsyncResult, das von einem Aufruf der BeginReceive-Methoden zurückgegeben wurde.
Gibt zurück
true
, wenn eine Nachricht empfangen wird, bevor der timeout
überschritten wurde, andernfalls false
.
Ausnahmen
Der festgelegte timeout
wird überstiegen, bevor der Vorgang abgeschlossen ist.
Der festgelegte Timeout ist kleiner als 0 (null).
Beispiele
Im folgenden Code wird veranschaulicht, wie diese Methode implementiert wird:
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;
}
Hinweise
Wenn Sie Timeouts handhaben und nicht nur den TimeoutException neu auslösen oder einbinden, sollten Sie TryReceive(TimeSpan, Message) anstatt Receive aufrufen.
Wenn Sie Timeouts nicht gesondert behandeln, rufen Sie einfach Receive auf, andernfalls verlieren Sie Fehlerinformationen.