IInputChannel.TryReceive(TimeSpan, Message) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Probeert een bericht te ontvangen binnen een opgegeven tijdsinterval.
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
Parameters
- timeout
- TimeSpan
De IAsyncResult geretourneerde door een aanroep naar een van de BeginReceive methoden.
Retouren
true als een bericht wordt ontvangen voordat het timeout is overschreden; anders false.
Uitzonderingen
De opgegeven timeout waarde wordt overschreden voordat de bewerking is voltooid.
De opgegeven time-out is kleiner dan nul.
Voorbeelden
De volgende code illustreert hoe u deze methode implementeert:
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;
}
Opmerkingen
Als u time-outs gaat afhandelen en niet alleen opnieuw gooit of verpakt TimeoutException, moet u bellen TryReceive(TimeSpan, Message) in plaats van Receive.
Als u time-outs niet speciaal gaat behandelen, roept u gewoon aan Receive, anders verliest u foutinformatie.