IInputChannel.Receive Methode

Definition

Gibt, wenn verfügbar, eine vom Eingabekanal empfangene Nachricht mit einem Zeitintervall aus, das explizit oder implizit definiert ist.

Überlädt

Receive()

Gibt die empfangene Nachricht zurück, wenn eine verfügbar ist. Ist keine Nachricht verfügbar, erfolgt eine Blockade für die Dauer des Standardzeitintervalls.

Receive(TimeSpan)

Gibt die empfangene Nachricht zurück, wenn eine verfügbar ist. Ist keine Nachricht verfügbar, erfolgt eine Blockade für die Dauer eines festgelegten Zeitintervalls.

Hinweise

Verwenden Sie die synchrone Receive-Methode, wenn eine Blockade des aktuellen Threads bis zum Eingehen einer Anforderungsnachricht oder bis zum Überschreiten des von timeout festgelegten Zeitintervalls akzeptabel ist Verwenden Sie die asynchrone BeginReceive-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten für den Empfang der Anforderung fortgesetzt werden soll.

Der synchrone Receive-Vorgang ist mit oder ohne ein explizites Timeout verfügbar.

Wenn keine Nachricht verfügbar ist, erfolgt eine Blockade, bis eine verfügbar ist oder bis der Timeout überschritten wird.

Receive()

Gibt die empfangene Nachricht zurück, wenn eine verfügbar ist. Ist keine Nachricht verfügbar, erfolgt eine Blockade für die Dauer des Standardzeitintervalls.

public:
 System::ServiceModel::Channels::Message ^ Receive();
public System.ServiceModel.Channels.Message Receive ();
abstract member Receive : unit -> System.ServiceModel.Channels.Message
Public Function Receive () As Message

Gibt zurück

Message

Der empfangene Message.

Beispiele

Im folgenden Code wird veranschaulicht, wie diese Methode implementiert wird:

public Message Receive()
{
    return Receive(DefaultReceiveTimeout);
}

Hinweise

Verwenden Sie die synchrone Receive-Methode, wenn eine Blockade des aktuellen Threads bis zum Eingehen einer Anforderungsnachricht oder bis zum Überschreiten des von timeout festgelegten Zeitintervalls akzeptabel ist Verwenden Sie die asynchrone BeginReceive-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten für den Empfang der Anforderung fortgesetzt werden soll.

Der synchrone Receive-Vorgang ist mit oder ohne ein explizites Timeout verfügbar.

Wenn keine Nachricht verfügbar ist, erfolgt eine Blockade, bis eine verfügbar ist oder bis der Timeout überschritten wird.

Receive kann mehrmals oder gleichzeitig aufgerufen werden. Für jede empfangene Nachricht kann nur ein Receive-Aufruf durchgeführt werden.

Gilt für

Receive(TimeSpan)

Gibt die empfangene Nachricht zurück, wenn eine verfügbar ist. Ist keine Nachricht verfügbar, erfolgt eine Blockade für die Dauer eines festgelegten Zeitintervalls.

public:
 System::ServiceModel::Channels::Message ^ Receive(TimeSpan timeout);
public System.ServiceModel.Channels.Message Receive (TimeSpan timeout);
abstract member Receive : TimeSpan -> System.ServiceModel.Channels.Message
Public Function Receive (timeout As TimeSpan) As Message

Parameter

timeout
TimeSpan

Der TimeSpan-Wert, der angibt, wie lange der Empfangsvorgang vor Timeout und Ausgabe von TimeoutException abgeschlossen sein muss.

Gibt zurück

Message

Der empfangene Message.

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 Message Receive(TimeSpan timeout)
{
    Message message;
    while (true)
    {
        message = this.InnerChannel.Receive(timeout);
        if (ProcessReceivedMessage(ref message))
        {
            break;
        }
    }

    return message;
}

Hinweise

Verwenden Sie die synchrone Receive-Methode, wenn eine Blockade des aktuellen Threads bis zum Eingehen einer Anforderungsnachricht oder bis zum Überschreiten des von timeout festgelegten Zeitintervalls akzeptabel ist Verwenden Sie die asynchrone BeginReceive-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten für den Empfang der Anforderung fortgesetzt werden soll.

Der synchrone Receive-Vorgang ist mit oder ohne ein explizites Timeout verfügbar.

Wenn keine Nachricht verfügbar ist, erfolgt eine Blockade, bis eine verfügbar ist oder bis der Timeout überschritten wird.

Receive kann mehrmals oder gleichzeitig aufgerufen werden. Für jede empfangene Nachricht kann nur ein Receive-Aufruf durchgeführt werden.

Gilt für