Ereignisschleife

Ereignisschleife

Eine Ereignisschleife (englisch event loop, message dispatcher, message loop oder message pump) ist in der Informatik ein Programmkonstrukt, das auf Ereignisse oder Meldungen wartet und sie innerhalb eines Programms verteilt. Ereignisquellen werden abgefragt und die für das Ereignis bzw. die Meldung zuständige Funktion wird aufgerufen.

Oft stellt diese Schleife den zentralen Kontrollfluss dar und wird deshalb auch als Hauptschleife oder Hauptereignisschleife bezeichnet.

Beispiele

Viele moderne Programme besitzen eine Hauptschleife. Im Gegensatz zu früher wird die Schleife jedoch durch präemptives Multitasking unterbrochen und erst wieder fortgesetzt wenn es tatsächlich etwas zu verarbeiten gibt. Dies ist effizienter als das aktive Warten beim kooperativen Multitasking.

Hauptschleife eines Programms mit kooperativem Multitasking

function main
    initialize()
    while program_running
        message := get_next_message()
        if message = no_message then
            yield()
        else if message = quit then
            return
        end if
        process_message(message)
    repeat
end function

In diesem Beispiel liefert get_next_message sofort "no_message" zurück, wenn keine neuen Meldungen warten. Die Funktion yield() gibt den Rest der zugeordneten Prozessorzeit freiwillig (kooperativ) zurück, sodass das System noch etwas anderes machen kann, als neue Meldungen abfragen.

Hauptschleife einer Applikation mit präemptivem Multitasking

function main
    initialize()
    while program_running
        message := get_next_message()
        if message = quit then
            return
        end if
        process_message(message)
    repeat
end function

In diesem Beispiel blockiert get_next_message (ohne, dass die Funktion davon etwas weiß) bis eine neue Meldung kommt. Dadurch wird keine Zeit mit dem Abfragen von nicht vorhandenen Meldungen verschwendet.


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Dialog (Computer) — Die einfachste Form eines Dialogfensters, mit nur einem OK Button Als Dialogfenster, Dialogfeld, Dialogbox oder einfach Dialog bezeichnet man spezielle Fenster in grafischen oder zeichenorientierten Benutzerschnittstellen. Verwendung …   Deutsch Wikipedia

  • Dialogbox — Die einfachste Form eines Dialogfensters, mit nur einem OK Button Als Dialogfenster, Dialogfeld, Dialogbox oder einfach Dialog bezeichnet man spezielle Fenster in grafischen oder zeichenorientierten Benutzerschnittstellen. Verwendung …   Deutsch Wikipedia

  • Dialogfeld — Die einfachste Form eines Dialogfensters, mit nur einem OK Button Als Dialogfenster, Dialogfeld, Dialogbox oder einfach Dialog bezeichnet man spezielle Fenster in grafischen oder zeichenorientierten Benutzerschnittstellen. Verwendung …   Deutsch Wikipedia

  • Dialogfenster — Eine der einfachsten Formen eines Dialogfensters, mit nur einem OK Button Als Dialogfenster, Dialogfeld, Dialogbox oder einfach Dialog bezeichnet man in der EDV spezielle Fenster in grafischen oder zeichenorientierten Benutzerschnittstellen.… …   Deutsch Wikipedia

  • GTK+ — Entwickler Das GTK+ Team[1] Aktuelle Version 3.2.2 (12. November 2011) …   Deutsch Wikipedia

  • XCB — Entwickler Jamey Sharp, Josh Triplett, Bart Massey Aktuelle Version 1.7 (August 2010) Betriebssystem …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”