Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Windows Communication Foundation (WCF)-Anwendungen kann ein Dienstvorgang asynchron oder synchron implementiert werden, ohne dem Client vorzuschreiben, wie er ihn aufzurufen hat. So können z. B. asynchrone Dienstvorgänge synchron aufrufen, und synchrone Dienstvorgänge können asynchron aufgerufen werden. Ein Beispiel, das anzeigt, wie man einen Vorgang in einer Clientanwendung asynchron aufruft, finden Sie unter Gewusst wie: Asynchrones Aufrufen von WCF-Dienstvorgängen. Weitere Informationen zu synchronen und asynchronen Vorgänge finden Sie unter Entwerfen von Dienstverträgen und Synchrone und asynchrone Vorgänge.
Einen Dienstvorgang asynchron implementieren
Deklarieren Sie im Dienstvertrag ein asynchrones Methodenpaar nach den asynchronen Entwurfsrichtlinien für .NET. Die Methode Begin nimmt einen Parameter, ein Rückrufobjekt und ein Statusobjekt und gibt eine System.IAsyncResult-Methode und eine entsprechende End-Methode aus, die ein System.IAsyncResult nimmt und den Rückgabewert ausgibt. Weitere Informationen zu asynchronen Anrufen finden Sie unter Asynchronous Programming Design Patterns.
Markieren Sie die Methode Begin des asynchronen Methodenpaars mit dem Attribut System.ServiceModel.OperationContractAttribute, und legen Sie die Eigenschaft System.ServiceModel.OperationContractAttribute.AsyncPattern auf true fest. Der folgende Code führt beispielsweise die Schritte 1 und 2 aus.
Implementieren Sie das Methodenpaar Begin/End in Ihrer Dienstklasse gemäß den asynchronen Entwurfsrichtlinien von .NET. Das folgende Codebeispiel zeigt eine Implementierung, in der eine Zeichenkette sowohl in den Teilen Begin als auch End des asynchronen Dienstvorgangs auf die Konsole geschrieben ist, und der Rückgabewert des Vorgangs End wird an den Client ausgegeben. Das vollständige Codebeispiel finden Sie im Abschnitt "Beispiel".
Beispiel
Das folgende Codebeispiel zeigt:
- Eine Dienstvertragschnittstelle mit:
- Einem synchronen
SampleMethod-Vorgang. - Einem asynchronen
BeginSampleMethod-Vorgang. - Einem asynchronen
BeginServiceAsyncMethod/EndServiceAsyncMethod-Vorgangspaar.
- Einem synchronen
- Einer Dienstimplementierung mit einem System.IAsyncResult-Objekt.
Siehe auch
Konzepte
Entwerfen von Dienstverträgen
Synchrone und asynchrone Vorgänge