14. Mai 2003, 22:40
Ich würde sagen, das kommt ganz darauf an, WAS das für Variablen sind.
Stammen sie aus einer externen Quelle (Signalgeber über serieller Anschluß oder sonstwas), und diese Quelle ändert ihr Signal höchstens einmal pro Sekunde, wäre OnIdle totaler overkill, denn vermutlich würde das mehrere hudnert Mal pro Sekunde ausgeführt, wenn man nicht gerade nebenbei spielt oder das Programm sonstige Berechnugnen macht. Da wäre ein Timer auf eben diese eine Sekunde sinnvoller.
Zusätzlich kommt es auf den Anwendungszweck an. Was hast du mit den Variablen vor? Wird der Wert irgendwo wieder ausgegeben, und das Augabemedium ist sehr Träge (Drucker), dann lohnt es sich nicht, tausende von Druckerjobs an den Drucker zu schicken, während der nichtmal das Papier eingezogen hat, also wieder Timer, der nur ab und zu mal schaut. Willst du eine sehr zeitkritische Sache machen, wie zum Beispiel ein Spiel, dann wäre es schon sinnvoller, die Variablen im OnIdle zu überorüfen, weil man dort ja normalerweise auch den restlichen verlauf des Spieles berechnet.
Ein dritter Hinweis noch: Wenn du auf extreme Gleichförmigkeit angewiesen bist, beispielsweise um eine AVI-Datei mit 25fps zu schreiben, ist ein Timer (und zwar ein asynchroner, was der Delphi-Timer glücklicherweise ist) sinnvoller, denn das OnIdle wird in unregelmäßigen Abständen aufgerufen, während man bei Gebrauch des Timers immer exakt 25 Bilder pro Sekunde in den AVI-Stream schrieben kann (vorausgesetzt, man komprimiert nicht zu stark).
|