Ereignis (Computing)
Im Programmierung und Software-Design, ein Veranstaltung ist eine Handlung oder Ereignis, die von erkannt wird Softwareoft Ursprung asynchron aus der äußeren Umgebung kann das sein abgewickelt von der Software. Computerereignisse können vom System, vom Benutzer oder auf andere Weise generiert oder ausgelöst werden. Normalerweise werden Ereignisse behandelt synchron mit dem Programmfluss; Das heißt, die Software hat möglicherweise einen oder mehrere spezielle Orte, an denen Ereignisse behandelt werden, häufig eine Ereignisschleife. Eine Ereignisquelle umfasst den Benutzer, der möglicherweise über den Computer mit der Software interagieren kann Peripheriegeräte - Zum Beispiel durch Eingabe des Klaviatur. Eine andere Quelle ist a Hardware- Gerät wie a Timer. Software kann auch ihre eigenen Ereignisse in die Ereignisschleife auslösen, z. um die Ausführung einer Aufgabe zu kommunizieren. Software, die ihr Verhalten als Reaktion auf Ereignisse ändert ereignisgesteuertoft mit dem Ziel des Seins interaktiv.
Beschreibung
Ereignisgetriebene Systeme werden normalerweise verwendet, wenn einige asynchrone externe Aktivitäten vorhanden sind, die von einem Programm behandelt werden müssen. Zum Beispiel ein Benutzer, der eine Taste auf der Maus drückt. Ein ereignisgesteuerter System führt normalerweise eine aus Ereignisschleifedas wartet immer wieder auf solche Aktivitäten, z. Eingabe von Geräten oder internen Alarmen. Wenn einer davon auftritt, sammelt es Daten über das Ereignis und sendet das Ereignis an die Event -Handler Software, die damit umgeht.
Ein Programm kann wählen, um Ereignisse zu ignorieren, und es kann Bibliotheken geben, um ein Ereignis an mehrere Handler zu versenden, auf die möglicherweise programmiert werden kann Hören Für ein bestimmtes Ereignis. Die mit einem Ereignis mindestens ein Ereignis verbundenen Daten geben an, welche Art von Ereignis sie sind, können jedoch andere Informationen enthalten, z. Quelle an den Handler darüber, wie das Ereignis verarbeitet werden sollte.
Ereignisse werden normalerweise in Benutzeroberflächen verwendet, in denen Aktionen in der Außenwelt (Mausklicks, Fensteraufnahmen, Tastaturdrücke, Nachrichten aus anderen Programmen usw.) vom Programm als eine Reihe von Ereignissen behandelt werden. Programme, die für viele Fensterumgebungen geschrieben wurden, bestehen überwiegend aus Ereignishandler.
Ereignisse können auch bei verwendet werden Befehlssatz Level, wo sie ergänzen Interrupts. Im Vergleich zu Interrupts werden die Ereignisse normalerweise synchron implementiert: Das Programm wartet ausdrücklich darauf, dass ein Ereignis generiert und behandelt wird (in der Regel eine Anweisung, die das nächste Ereignis sendet), während ein Interrupt einen sofortigen Service verlangen kann.
Ereignismodell delegieren
Eine gemeinsame Variante in Objekt orientierte Programmierung ist der Ereignismodell delegieren, was von einigen bereitgestellt wird Grafische Benutzeroberflächen. Dieses Modell basiert auf drei Entitäten:
- eine Kontrolle, die Ereignisquelle ist
- Zuhörer, auch genannt Event -Handler, die die Ereignisbenachrichtigung von der Quelle erhalten
- Schnittstellen (in der breiteren Bedeutung des Begriffs), die die beschreiben Protokoll mit der die Veranstaltung kommuniziert werden soll.
Darüber hinaus erfordert das Modell:
- Jeder Hörer muss die Schnittstelle für die implementieren Veranstaltung es will hören
- Jeder Hörer muss sich bei der Quelle registrieren, um seinen Wunsch zu erklären, das Ereignis zu hören
- Jedes Mal, wenn die Quelle das Ereignis generiert, vermittelt sie es den registrierten Zuhörern, der dem Protokoll der Schnittstelle folgt.
C# Verwendet Ereignisse als spezielle Delegierte, die nur von der Klasse abgefeuert werden können, die sie erklärt. Dies ermöglicht besser Abstraktion, zum Beispiel:[1]
delegieren Leere Notifier (Saite Absender); Klasse Modell { Öffentlichkeit Veranstaltung Notifier NotifyViews; Öffentlichkeit Leere Veränderung() { ... NotifyViews("Modell"); } } Klasse View1 { Öffentlichkeit View1(Modell m) { m.NotifyViews += Neu Notifier(Dies.Update1); } Leere Update1(Saite Absender) { Konsole.Schreiben(Absender + "wurde während des Updates geändert"); } } Klasse View2 { Öffentlichkeit View2(Modell m) { m.NotifyViews += Neu Notifier(Dies.Update2); } Leere Update2(Saite Absender) { Konsole.Schreiben(Absender + " wurde verändert"); } } Klasse Prüfen { statisch Leere Hauptsächlich() { Modell Modell = Neu Modell(); Neu View1(Modell); Neu View2(Modell); Modell.Veränderung(); } }
Event -Handler
In Computerprogrammierung ein Event -Handler kann mit a implementiert werden zurückrufen Subroutine Das behandelt Eingänge, die in einem Programm empfangen werden (genannt a Hörer in Java und JavaScript[2]). Jeder Veranstaltung ist eine Information auf Anwendungsebene aus dem zugrunde liegenden Informationen Rahmen, normalerweise die GUI -Toolkit. GUI -Veranstaltungen umfassen Schlüssel Pressen, Maus Bewegung, Aktionsauswahl und Timer ablaufen. Auf einer niedrigeren Ebene können Ereignisse die Verfügbarkeit neuer Daten zum Lesen einer Datei oder eines Netzwerkstroms darstellen. Event -Handler sind ein zentrales Konzept in ereignisgesteuerte Programmierung.
Die Ereignisse werden durch das Framework erstellt, basierend auf der Interpretation von Eingaben auf niedrigerer Ebene, die selbst auf niedrigere Ebene Ereignisse sein können. Beispielsweise werden Mausbewegungen und -klicks als Menüauswahl interpretiert. Die Ereignisse stammen zunächst aus Aktionen auf der Ebene des Betriebssystems, wie z. Interrupts generiert von Hardware -Geräten, Software -Interrupt -Anweisungen oder Statusänderungen in Umfragen. Auf dieser Ebene, Interrupt Handler und Signalhandler entsprechen Event -Handlern.
Erstellte Ereignisse werden zuerst von einem verarbeitet Event Dispatcher im Rahmen von. Es verwaltet in der Regel die Assoziationen zwischen Ereignis- und Ereignishandlern und kann Event -Handler oder Ereignisse für die spätere Verarbeitung anstellen. Event -Disponenten können Event -Handler direkt anrufen oder darauf warten, dass die Ereignisse mit Informationen über den Handler ausgeführt werden.
Ereignisbenachrichtigung
Ereignisbenachrichtigung ist ein Begriff in Verbindung mit Kommunikation Software Zur Verknüpfung von Anwendungen, die klein erzeugen Mitteilungen (Die "Ereignisse") für Anwendungen, die die zugehörigen Bedingungen überwachen und Maßnahmen ergreifen, die durch Ereignisse ausgelöst werden.
Die Ereignisbenachrichtigung ist ein wichtiges Merkmal in der Moderne Datenbank Systeme (zur Information von Anwendungen, bei denen die Bedingungen, nach denen sie beobachtet werden, aufgetreten sind), moderne Betriebssysteme (zur Information von Anwendungen, wenn sie einige Maßnahmen ergreifen sollten, z. auf einer anderen Maschine sein als der Verbraucher oder Verbraucher. Normalerweise sind Event -Benachrichtigungsplattformen so gestaltet, dass die Anwendungserzeugungsereignisse nicht wissen, welche Anwendungen sie konsumieren oder wie viele Anwendungen den Ereignisstrom überwachen.
Es wird manchmal als Synonym für verwendet Veröffentlichen von Subscribe, ein Begriff, der sich auf eine Produktklasse bezieht, die die Ereignisbenachrichtigung in vernetzten Einstellungen unterstützt. Das Virtuelle Synchronität Das Modell wird manchmal verwendet, um Ereignisbenachrichtigungssysteme zu stiften und Systeme mit stärkeren Fehlertoleranz und Konsistenz zu veröffentlichen.
Benutzer generierte Ereignisse
Es gibt eine große Anzahl von Situationen oder Ereignissen, auf die ein Programm oder ein System generieren oder reagieren kann. Einige gängige benutzergenerierte Ereignisse umfassen:
Mausereignisse
A Zeigegerät kann eine Reihe von erkennbaren Software generieren Zeigengerätegesten. Eine Maus kann eine Reihe von Mausereignissen erzeugen, wie z.[3] und Mausrad Bewegung oder eine Kombination dieser Gesten. Zum Beispiel, Doppelklicken Sie Wählen Sie häufig Wörter und Zeichen innerhalb der Grenze aus, und Dreifachklicks ganze Absätze.
Tastaturereignisse
Durch Drücken einer Taste auf einer Tastatur oder einer Kombination von Tasten wird ein Tastaturereignis generiert, sodass das derzeit ausgeführte Programm auf die eingeführten Daten reagiert, wie z. B. die Taste, die der Benutzer gedrückt hat.[3]
Joystick -Ereignisse
Bewegen a Joystick erzeugt ein X-Y-Analogsignal. Sie haben oft mehrere Tasten, um Ereignisse auszulösen. Etwas Gamepads Für beliebte Spielboxen verwenden Sie Joysticks.
Touchscreen -Ereignisse
Die mit a generierten Ereignisse Berührungssensitiver Bildschirm werden üblicherweise als als bezeichnet als Berührenereignisse oder Gesten.
Geräteereignisse
Zu den Geräteereignissen gehören die Aktion von oder zu einem Gerät wie Shake, Neigung, Rotation, Bewegung usw.
Siehe auch
- Rückruf (Computerprogrammierung)
- Datenbankauslöser
- DOM -Ereignisse
- Ereignisgesteuerte Programmierung
- Ausnahmebehandlung
- Interrupt Handler
- Interrupts
- Beobachtermuster (z. B. Ereignishörer)
- Reaktormuster vs. Proaktormuster
- Signalprogrammierung
- Virtuelle Synchronität
Verweise
- ^ Mössenböck, Hanspeter (2002-03-25). "Erweiterte C#: Variable Anzahl der Parameter" (PDF). Institut Für Systemoftware, Johannes Kepler Universität Linz, Fachbereich Informatik. p. 26. Abgerufen 2011-08-05.
- ^ "EventTarget.addeventListener () - Web -APIs | mdn". Entwickler.mozilla.org.
- ^ a b Maus- und Tastaturereignisse in Windows -Formularen. Microsoft. Abgerufen am 12. Februar 2008.
Externe Links
- Artikel Ereignishandler und Rückruffunktionen
- Ein hochrangiges Design des Sub-Farm-Event-Handlers
- Eine Ereignissyntax für XML
- Verteilte Ereignisse und Benachrichtigungen
- Ereignisauftrag
-
Java Dom Interface -Ereignis
Javadoc Dokumentation -
java.awt.event
Java -Paket Javadoc API -Dokumentation -
javax.swing.event
Java -Paket Javadoc API -Dokumentation - Schreiben Sie einen Event -Handler