Zitat von
MasterDG:
Also was meint ihr soll ich mit OnIdle weiter machen oder einen Thread benutzen?
Weder noch. Das Problem bei OnIdle ist, dass das Ereignis "Idle" nur eintritt, wenn
kein anderer Prozess CPU-Zeit fordert. Für dich in deinem eigenen Prozess besteht also immer die Gefahr dass ein anderer meint plötzlich etwas tun zu müssen, wodurch Ruckler dieser Art sogar wahrscheinlich sind.
Das selbe Problem hat auch ein Thread, es sei denn seine Priotität ist TimeCritical, und die deines Prozesses ebenso. Wovon aber extrem
abzuraten ist, da dann der PC zu fast 100% mit deinem Thread beschäftigt ist, so dass höchstens noch ein paar elementare Prozesse des
OS ausgeführt werden, aber der große Rest still liegt. Das bedingt auch, dass du den PC also so lange überhaupt nicht bedienen kannst, bis dein Thread zu Ende ist. Jede niedrigere Priorität kann prinzipiell durch Prozesse/Threads gleicher/höherer Priorität ebenfalls lahm gelegt werden, so dass du wieder Ruckler hättest. Du kannst dich also nicht auf eine stabile Framerate verlassen.
Die in dem o.g. Link genannten Verfahren sind
imho die einzig sinnvollen, da sie dir einen Timer erzeugen der (fast) auf jeden Fall in einem ziemlich genauen Rythmus deinem Prozess die Möglichkeit gibt etwas zu tun. Zwar kann auch hier ein anderer Prozess/Thread mit sehr hoher Prioriät dazwischen funken, aber eben genau deswegen sollte kein Programm davon gebrauch machen
. (Und die allerwenigsten tun dies, bzw. kenne ich keines.)
Dies ist der einzige Weg eine stabile Framerate, zumindest ziemlich gut, sicher zu stellen.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel