100% CPU Auslastung bei TTimer
-
HI,
ich habe beim TTimer ein interval von 10ms eingestellt und die CPU auslastung ist bei 100%
Wer kann mir helfen und mir sagen wie ich die auslastung runterbekomme ohne den interval zu vergrößern
-
Die CPU Aulastung kommt nicht durch den Timer zustande, sondern durch die Funktionen die du innerhalb des Events ausführst. Um dir hierbei hefen zu können, müsstest du ein paar Zeilen Quelltext posten ...
Gruß Skay
-
ich habe beim TTimer ein interval von 10ms ...
Schön daß Du das gemacht hast, aber daran wird das wohl sicherlich nicht alleine liegen. Wenn ich so in die legendäre Glaskugel blicke meine ich viel Code in der Timerroutine erkennen zu können. Ist das denn so

-
ich verschiebe ein TImage auf einer Form
-
Ist das so schwer? OHNE Quelltext können wir dir nicht sagen was du falsch machst !
-
Hallo
der kleinste sinnvolle Wert fuer den Timer ist 55 ms
(kleinere Werte sind soweit ich weis sinnlos)MfG
Klaus
-
Hier der Quelltext
Form1->Image->Left = Form1->Image->Left + i; Form1->Image->Top = Form1->Image->Top + j; if(Form1->Image->Top <= 0) j = 2; if(Form1->Image->Left <= 0) i = 2; if(Form1->Image->Top >= Form1->Height - Form1->Image->Height) j = -2; if(Form1->Image->Left >= Form1->Width - Form1->Image->Width) i = -2;
-
Application->ProcessMessages();in die Timer-Routine eingefügt ist manchmal eine gute Idee und läßt die parallel laufenden Programme auch mal drankommen.
-
Application->ProcessMessages();hab ich auch schon versucht ist aber immer noch bei 100%
-
Hi,
deine TimerRoutine wird alle 10ms aufgerufen und dauert dann etwas!Das bedeutet die Routine läuft ohne Unterbrechung -> 100% CPU
Da kann man nur den Intervall hochsetzen! Was willst du überhaupt machen? Mit 10ms Intervall kann man nichts sinnvolles machen!
MfG
Alexander Sulfrian
-
Alexander hat recht:
Du versuchtst offenbar, ein Image alle 10 Millisekunden um einen Pixel zu verschieben, das wären 100 mal pro Sekunde. Das entspricht 100 Bildern pro Sekunde, das schafft normalerweise nicht einmal DirectX, die VCL mit einem T-Image auf gar keinen Fall.
Resultat: 100% CPU-Auslastung, aber deutlich weniger als 100 Verschiebungen pro Sekunde und damit abhängig nicht von der Timer-Einstellung sondern vom verwendeten Computersystem.
-
Das Problem kenn ich, ich persönlich hatte es nicht aber ein User meines Programms.
Lösung: Pack alles in ein Thread, was per intervall ausgeführt wird, dann ist alles klar und geht super.