Bedeutung von Callback-Funktionen

Gast #1421365
Lesenswert?

Um dich von einen Programmteil über getane Arbeit informieren zu lassen.
(Vgl. mit Interrupt)

Angenommen du willst eine Webseite abholen so kannst du das synchron 
oder asynchron machen. z.b. so


http.mode = SYNC
http.get("http://www.xyz.de/";) ' hier wird gewartet
print http.data ' diese Zeile wird erst nach dem Holen ausgeführt


ODER

http.mode = ASYNC
http.onComplete = myFunc
http.get("http://www.xyz.de/";) ' hier wird gewartet
print "wir können sofort weiter machen"


myFunc( caller ) {
  print caller.data ' Diese Zeile wird "irgendwann" ausgeführt. Das 
restl. Programm bekommt davon normalerweise nichts mit
}

Gruß
Roland
#1421400
Lesenswert?

Ein anderes Beispiel ist die EnumWindows() Funktion der WinAPI. Diese 
nimmt mit einem Parameter eine Callback Funktion an welche dann 
innerhalb des EnumWindows() Aufrufes mit jedem einzelnen verfügbaren 
Fenster und dessen Daten aufgerufen wird. Da du die Funktion beim 
EnumWindows() Aufruf mitgibst, kannst du in dieser das ganze steuern - 
d.h. auch abbrechen. Der Rückgabewert in der Callback Funktion regelt 
das fortführen oder beenden der Callback Aufrufe. Näheres dazu in der 
MSDN.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren