Entwurfsmuster für die asynchrone Programmierung
Aktualisiert: November 2007
Mit asynchronen Vorgängen werden üblicherweise Aufgaben ausgeführt, die längere Zeit in Anspruch nehmen, z. B. das Öffnen großer Dateien, Die Herstellung einer Verbindung mit Remotecomputern oder das Abfragen einer Datenbank. Ein asynchroner Vorgang wird in einem eigenen Thread ausgeführt, der vom Hauptanwendungsthread getrennt ist. Wenn eine Anwendung Methoden zum Ausführen eines asynchronen Vorgangs aufruft, kann die Anwendung weiter ausgeführt werden, während die asynchrone Methode ihre Aufgaben erfüllt.
In .NET Framework stehen zwei Entwurfsmuster für asynchrone Vorgänge zur Verfügung:
Asynchrone Vorgänge, die IAsyncResult-Objekte verwenden.
Asynchrone Vorgänge, die Ereignisse verwenden.
Das IAsyncResult-Entwurfsmuster ermöglicht eine Reihe unterschiedlicher Programmiermodelle, ist jedoch komplex und daher schwer zu erlernen und bietet zudem eine Flexibilität, die für die meisten Anwendungen nicht erforderlich ist. Klassenbibliothek-Designer sollten asynchrone Methoden daher nach Möglichkeit nach dem ereignisgesteuerten Modell implementieren. In einigen Fällen empfiehlt sich für Bibliothek-Designer jedoch auch das IAsyncResult-basierte Modell.
Eine Dokumentation zu asynchronen Vorgängen, die Ereignisse verwenden, finden Sie unter Übersicht über ereignisbasierte asynchrone Muster.
Die asynchrone Programmierung ist ein Feature, das von vielen Bereichen in .NET Framework unterstützt wird, z. B.:
Datei-E/A, Stream-E/A, Socket-E/A
Netzwerkvorgänge
Remotechannel (HTTP, TCP) und Proxys
Mithilfe von ASP.NET erstellte XML-Webdienste
ASP.NET-Web Forms
Message Queuing mithilfe der MessageQueue
In diesem Abschnitt
Übersicht über die asynchrone Programmierung
Erläutert das IAsyncResult-basierte asynchrone Entwurfsmuster, mit dem Ihnen ein flexibles Programmiermodell für die Verwendung von asynchronen Vorgängen zur Verfügung steht.Aufrufen von asynchronen Methoden unter Verwendung von IAsyncResult
Stellt Codebeispiele zur Verfügung, die die verschiedenen Verfahren veranschaulichen, mit denen Anwendungen das Ende eines asynchronen Vorgangs erkennen können.Asynchrone Programmierung mithilfe von Delegaten
Beschreibt das asynchrone Aufrufen einer synchronen Methode.Multithreadprogrammierung mit dem ereignisbasierten asynchronen Muster
Beschreibt das ereignisbasierte asynchrone Muster, das ein asynchrones Programmiermodell bereitstellt, bei dem die threadübergreifende Kommunikation über Ereignisse erfolgt.