Schon mal an einen separaten Thread gedacht den du mit sleep() für eine bestimmte Zeit einfach "schlafen" schickst?
@tommie-lie:
Zitat:
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
Also was ungenaueres gibt es ja wohl nicht als einen Timer zu benutzen (wenn es der normale Timer ist, aber den meinst du wohl).
Ein Timer schickt in einem bestimmten Intervall eine WM_TIMER-Nachricht an die Anwendung (Welche übrigens die niedrigeste Priorität im ganzen System haben.) Diese Nachrichten kommen in die Nachrichtenschlage für das Fenster, wie jede andere auch. Ist die nun voll oder das fenster mit was anderem bescdhäftigt bleibt sie so lange da liegen bis sie von der Anwendung abgeholt wird. Ist die Anwendung nun sehr beschäftigt, kann es im extrem Fall meherer Sekunden dauern bis die WM_TIMER-Nachricht abgeholt und bearbeitet wirde.