Freigeben über


Ereignisse und Rückrufe

Aktualisiert: November 2007

Eine Rückrufmethode ist eine Methode, die von einem Delegaten automatisch aufgerufen wird, wenn eine Operation oder eine Aktivität abgeschlossen wurde. Beispielsweise werden in einem der asynchronen Entwurfsmuster AsyncCallback-Delegaten verwendet, um den Code anzugeben, der beim Abschluss einer asynchronen Operation ausgeführt wird. Dieses Entwurfsmuster wird in der BeginWrite-Methode verwendet, die die Ergebnisse eines asynchronen Schreibvorgangs mit einem Rückruf verarbeitet.

Ereignisse sind ähnliche Mechanismen wie Rückrufe. Ereignisse ermöglichen die Ausführung von benutzerdefiniertem Code unter bestimmten Bedingungen und sind i. d. R. mit einer Zustandsänderung oder dem Beginn oder Ende einer Aktivität verbunden. Ereignisse sind einfacher zu verwenden als Rückrufe, weil die Sprachsyntax und Tools eine einheitliche Codierung zum Erkennen und Behandeln von Ereignissen ermöglichen. Ereignisse werden außerdem von Delegaten behandelt, die als Ereignishandler bezeichneten werden und über ein klar definiertes Signaturmuster verfügen. Weitere Informationen über Ereignisse finden Sie unter Ereignisentwurf.

Anhand der folgenden Richtlinien können Sie sicherstellen, dass beim Bibliotheksentwurf Ereignisse und Rückrufe entsprechend den empfohlenen Vorgehensweisen verwendet werden.

Verwenden Sie in leistungsrelevanten APIs keine Rückrufe.

Zwar sind Verständnis und Verwendung von Rückrufen und Ereignissen für die meisten Entwickler einfacher, doch sind sie im Hinblick auf Leistung und Speicherauslastung weniger geeignet als Virtuelle Member.

Beachten Sie, dass Sie durch den Aufruf eines Delegaten beliebigen Code ausführen, der sich auf Sicherheit, ordnungsgemäße Ausführung und Kompatibilität auswirken kann.

Ereignisse und Rückrufe ermöglichen die Ausführung beliebigen Codes im Kontext der Common Language Runtime (CLR). In Code- und Sicherheitsüberprüfungen sollten diese Erweiterungspunkte sorgfältig untersucht werden, um Sicherheitslücken zu identifizieren.

Copyright für einzelne Teile 2005 Microsoft Corporation. Alle Rechte vorbehalten.

Copyright für einzelne Teile Addison-Wesley Corporation. Alle Rechte vorbehalten.

Weitere Informationen zu Entwurfsrichtlinien finden Sie im Buch "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" von Krzysztof Cwalina und Brad Abrams, veröffentlicht von Addison-Wesley, 2005.

Siehe auch

Weitere Ressourcen

Entwerfen für Erweiterbarkeit

Entwurfsrichtlinien zum Entwickeln von Klassenbibliotheken