(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

IInputChannel.BeginTryReceive-Methode

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

Namespace:  System.ServiceModel.Channels
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

IAsyncResult BeginTryReceive(
	TimeSpan timeout,
	AsyncCallback callback,
	Object state
)

Parameter

timeout
Typ: System.TimeSpan
Der Timespan-Wert, der das Zeitintervall für das Warten darauf angibt, das eine Nachricht verfügbar wird.
callback
Typ: System.AsyncCallback
Der AsyncCallback-Delegat, der die Benachrichtigung über den Abschluss des asynchronen Vorgangs erhält.
state
Typ: System.Object
Ein durch die Anwendung festgelegtes Objekt, das dem asynchronen Vorgang zugeordnete Statusinformationen enthält.

Rückgabewert

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

AusnahmeBedingung
TimeoutException

Der festgelegte timeout wird überstiegen, bevor der Vorgang abgeschlossen ist.

ArgumentOutOfRangeException

Der festgelegte Timeout ist kleiner als 0 (null).

Verwenden Sie die asynchrone BeginTryReceive(TimeSpan, AsyncCallback, Object)-Methode, wenn die Anwendungsverarbeitung ohne Wartezeiten fortgesetzt werden soll. Verwenden Sie die synchrone TryReceive(TimeSpan, Message)-Methode, wenn eine Blockade des aktuellen Threads bis zur Antwort auf die Anforderungsnachricht akzeptabel ist oder bis das Timeoutintervall abgelaufen ist.

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

Wenn Sie Timeouts handhaben und nicht nur den TimeoutException neu auslösen oder einbinden, sollten Sie BeginTryReceive(TimeSpan, AsyncCallback, Object) anstatt BeginReceive aufrufen.

Wenn Sie Timeouts nicht gesondert behandeln, rufen Sie einfach BeginReceive auf, andernfalls verlieren Sie Fehlerinformationen.

Hinweise zur Implementierung

Der Vorgang gibt false von EndTryReceive(IAsyncResult, Message) zurück, wenn die angegebene timeout überschritten wurde.

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


public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveAsyncResult<TChannel> result = new TryReceiveAsyncResult<TChannel>(this, timeout, callback, state);
    result.Begin();
    return result;
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft