Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| modul:m323:learningunits:lu03:callbacks [2026/08/25 11:59] – Timeout-Beispiel korrigiert: timeout=2 loest den except-Zweig tatsaechlich aus admin | modul:m323:learningunits:lu03:callbacks [2026/09/08 08:34] (aktuell) – Animation zur Umkehrung der Kontrolle eingebettet admin | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| Callback Funktionen sind eine klassische Anwendung von First-Class- und Higher-Order-Functions. | Callback Funktionen sind eine klassische Anwendung von First-Class- und Higher-Order-Functions. | ||
| + | ===== Animation: das Konzept hinter Callbacks ===== | ||
| + | |||
| + | Der erste Tab zeigt das Muster ohne jedes Framework: Ihre Funktion weiss, **was** geschehen soll, die fremde Funktion bestimmt, **wann** und **wie oft**. Man sieht die Übergabe nach unten und den Rückruf nach oben – und dass ein anderer Callback das Verhalten ändert, ohne dass am fremden Code etwas angepasst wird. Die beiden weiteren Tabs zeigen dasselbe Muster in echt: beim Button-Klick (samt dem Klammernfehler weiter unten) und beim nebenläufigen Warten. | ||
| + | |||
| + | {{url> | ||
| ===== Callbacks in der GUI Programmierung ===== | ===== Callbacks in der GUI Programmierung ===== | ||
| Zeile 38: | Zeile 43: | ||
| <WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
| Achten Sie auf '' | Achten Sie auf '' | ||
| + | |||
| + | Die beiden letzten Schritte im zweiten Tab der Animation oben zeigen genau diesen Fall. | ||
| </ | </ | ||
| Zeile 109: | Zeile 116: | ||
| </ | </ | ||
| - | Das ganze Programm dauert 3 Sekunden statt 5, weil die beiden Wartezeiten sich überlappen. | + | Das ganze Programm dauert 3 Sekunden statt 5, weil die beiden Wartezeiten sich überlappen. Der dritte Tab der Animation oben zeigt diesen Ablauf auf einer Zeitachse, mit der sequenziellen Variante als Vergleich. |
| === Beispiel: Asynchrone Dateioperation === | === Beispiel: Asynchrone Dateioperation === | ||