IInputChannel.BeginReceive Methode

Definition

Beginnt einen asynchronen Empfangsvorgang.

Überlädt

BeginReceive(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um eine Nachricht zu empfangen, die über ein ihm zugeordnetes Statusobjekt verfügt.

BeginReceive(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, eine Nachricht zu empfangen, die über einen angegebenen Timeout und ein zugeordnetes Statusobjekt verfügt.

Hinweise

Verwenden Sie die asynchrone BeginReceive-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten für den Empfang der Anforderung fortgesetzt werden soll. 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 Der asynchrone Vorgang ist mit oder ohne ein explizites Timeout verfügbar.

BeginReceive(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um eine Nachricht zu empfangen, die über ein ihm zugeordnetes Statusobjekt verfügt.

public:
 IAsyncResult ^ BeginReceive(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (AsyncCallback callback, object state);
abstract member BeginReceive : AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

callback
AsyncCallback

Der AsyncCallback-Delegat, der die Benachrichtigung über den Abschluss des asynchronen Vorgangs erhält.

state
Object

Ein durch die Anwendung festgelegtes Objekt, das dem asynchronen Vorgang zugeordnete Statusinformationen enthält.

Gibt zurück

IAsyncResult

Der IAsyncResult-Wert, der auf den asynchronen Nachrichtenempfang verweist.

Beispiele

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

public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
    return BeginReceive(DefaultReceiveTimeout, callback, state);
}

Hinweise

Verwenden Sie die asynchrone BeginReceive-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten für den Empfang der Anforderung fortgesetzt werden soll. 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 Der asynchrone Vorgang ist mit oder ohne ein explizites Timeout verfügbar.

Dieser Methode wird in einem Rückruf die Identität des Ereignishandlers für den Vorgang mitgeteilt. Dieser Vorgang wird nicht abgeschlossen, bevor eine Nachricht im Kanal verfügbar wird.

Gilt für

BeginReceive(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, eine Nachricht zu empfangen, die über einen angegebenen Timeout und ein zugeordnetes Statusobjekt verfügt.

public:
 IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

timeout
TimeSpan

Der TimeSpan-Wert, der das Zeitintervall für das Warten darauf angibt, das eine Nachricht verfügbar wird.

callback
AsyncCallback

Der AsyncCallback-Delegat, der die Benachrichtigung über den Abschluss des asynchronen Vorgangs erhält.

state
Object

Ein durch die Anwendung festgelegtes Objekt, das dem asynchronen Vorgang zugeordnete Statusinformationen enthält.

Gibt zurück

IAsyncResult

Der IAsyncResult-Wert, der auf den asynchronen Empfangsvorgang verweist.

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 IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}

Hinweise

Verwenden Sie die asynchrone BeginReceive-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten für den Empfang der Anforderung fortgesetzt werden soll. 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 Der asynchrone Vorgang ist mit oder ohne ein explizites Timeout verfügbar.

Der Vorgang ist nicht abgeschlossen, bevor entweder eine Nachricht im Kanal verfügbar wird oder der Timeout auftritt.

Hinweise für Ausführende

Der Vorgang löst eine TimeoutException aus, wenn der festgelegte timeout-Wert vor Abschluss überschritten wird.

Gilt für