2012-12-27 8 views
5

Ich erfahre a problem mit der SetTimer-API.Timer in Windows

Nur aus Neugier, was sind meine anderen Optionen in Delphi?

+2

http://www.codeproject.com/Articles/1236/Timers-Tutorial#QueueTimers Alle sind hier beschrieben. Ich bin ein wenig zögerlich, um Multimedia-Timer zu verwenden, aber sie funktionieren immer noch gut unter Windows 8. In beiden Fällen werden die Warteschlangen-Timer oder Multimedia-Timer viel bessere Ergebnisse liefern. – AudioGL

+0

Als Antwort bitte posten :) – ELCouz

+1

Sie können sich den [TJvThreadTimer] (http://wiki.delphi-jedi.org/wiki/JVCL_Help:TJvThreadTimer) ansehen. Ein Timer mit hoher Auflösung, der auf einem internen Thread arbeitet, anstatt sich auf die Windows API zu verlassen. Kann ohne einen Windows-Griff verwendet werden. –

Antwort

3

Wenn Sie die Arbeit nach einem bestimmten Zeitpunkt tun müssen, sollten Sie auch fragen, ob Sie das tun müssen, Arbeit in Threads. Es gibt einen großen Unterschied zwischen der Behandlung von Timer-Ereignissen und Off-loading Arbeit aus dem Haupt-Thread in separate Threads, sowohl in wie dies einrichten und wie es ausführen wird (unter Berücksichtigung mehr und mehr Hardware hat Multi-Core-Prozessoren).

Der einfachste Weg, dies zu tun, ist von TThread erben, aber es ist nicht so einfach. (Siehe "Thread" im Dialogfeld "Neu", oder the documentation). Es gibt auch eine Reihe von threading platforms for Delphi.