Richtlinien für die asynchrone Programmierung

Asynchrone Programmierung ist ein Feature, das von vielen Bereichen der Common Language Runtime unterstützt wird, z. B. von Remoting, ASP.NET und Windows Forms. Die asynchrone Programmierung ist ein zentrales Konzept in .NET Framework. In diesem Thema werden die Entwurfsschemas für die asynchrone Programmierung erklärt.

Hinter diesen Richtlinien steht folgende Philosophie:

  • Der Client soll entscheiden, ob ein bestimmter Aufruf asynchron sein soll.
  • Ein Server muss keine zusätzliche Programmierung bereitstellen, um das asynchrone Verhalten seiner Clients zu unterstützen. Die Runtime soll die Abweichungen zwischen der Client- und der Serveransicht verwalten können. Dadurch wird eine Situation vermieden, in der der Server IDispatch implementieren und eine große Anzahl an Operationen ausführen muss, um dynamische Aufrufe durch Clients zu unterstützen.
  • Der Server kann asynchrones Verhalten explizit unterstützen, weil er entweder dieses Verhalten effizienter unterstützen kann als die allgemeine Architektur, oder weil er nur asynchrones Verhalten seiner Clients unterstützen möchte. Es wird empfohlen, dass für solche Server das in diesem Dokument beschriebene Entwurfsschema für die Offenlegung von asynchronen Operationen verwendet wird.
  • Die Typsicherheit muss implementiert werden.
  • Die Runtime stellt die Dienste bereit, die für die Unterstützung des asynchronen Programmiermodells benötigt werden. Hierzu gehören folgende Dienste:
    • Synchronisierungsgrundelemente, z. B. kritische Abschnitte und ReaderWriterLock-Instanzen.
    • Synchronisierungskonstrukte, z. B. Container, die die WaitForMultipleObjects-Methode unterstützen.
    • Threadpools.
    • Offenlegung in der zugrunde liegenden Infrastruktur, z. B. in Message- und ThreadPool-Objekten.

Siehe auch

Entwurfsrichtlinien für die Entwicklung von Klassenbibliotheken | Entwurfsmuster für die asynchrone Programmierung