IInputChannel.TryReceive(TimeSpan, Message) Methode

Definition

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

Die IAsyncResult von einem Aufruf an eine der BeginReceive Methoden zurückgegebene.

message
Message

Der Message Empfangene.

Gibt zurück

true wenn eine Nachricht empfangen wird, bevor die timeout Nachricht überschritten wurde; andernfalls false.

Ausnahmen

Der angegebene timeout Wert wird überschritten, bevor der Vorgang abgeschlossen ist.

Das angegebene Timeout ist kleiner als 0.

Beispiele

Der folgende Code veranschaulicht die Implementierung dieser Methode:

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 behandeln und nicht nur erneut auslösen oder umbrechen TimeoutException, sollten TryReceive(TimeSpan, Message) Sie anstelle von Receive.

Wenn Sie timeouts nicht speziell behandeln werden, rufen ReceiveSie einfach auf, andernfalls verlieren Sie Fehlerinformationen.

Gilt für: