IInputChannel.TryReceive(TimeSpan, Message) Methode

Definitie

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.

message
Message

De Message ontvangen.

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.

Van toepassing op