CPU Auslastung bei Threads !
-
Hallo Zusammen,
ich habe mir das Tutorial über Threads angeschaut und fand es durchaus interessant.
Das erste Beispiel kommt beim starten des threads auf eine CPU Auslastung von
100 % .Wie kommt das?
-
dominik 0 schrieb:
Das erste Beispiel kommt beim starten des threads auf eine CPU Auslastung von
100 % .Wie kommt das?
Vielleicht führt es komplizierte Berechnungen durch? Vielleicht läßt es den Prozessor in böser Absicht heißlaufen? Möglicherweise will es dich auch nur ärgern?
Mal im Ernst: du mußt uns schon näherbringen, was das Beispiel denn überhaupt tut, sonst können dir nur die Glaskugelbesitzer unter uns helfen.
Moritz
-
void __fastcall TMyThread::GuiElements() { Form1->DisplayLabel->Caption = IntToStr(FCount); } void __fastcall TMyThread::Execute() { FCount = 1; do { Synchronize(GuiElements); FCount++; } while (FCount <= 200000); }also wenn eine einfache nicht abweisende schleife zu viel ist...?

CPU Auslastung = 100%
-
LoL
"Synchronize(GuiElements); "

-
FetterHase schrieb:
LoL
"Synchronize(GuiElements); "

Entweder, bist Du so schlau, oder was soll mir Deine Antwort sagen?
Der Coede stammt aus dem Tutorial zu Threads aus diesem Forum.Also, wenn Du keine Ahnung hast halt lieber die Klappe

-
überlege mal, was dein Prozessor macht, wenn er deine schleife durchläuft..
-
BigNeal schrieb:
überlege mal, was dein Prozessor macht, wenn er deine schleife durchläuft..
Verstanden.
Aber selbst wenn du Synchronize wegläßt und nur inkrementierst,
kommt die CPU auf 100%
-
dominik 0 schrieb:
Aber selbst wenn du Synchronize wegläßt und nur inkrementierst,
kommt die CPU auf 100%warscheinlich liegts daran, dass der prozessor in deiner do while-schlaufe solange inkrementiert (und das mit soviel resourcen wie ihm zur verfügung steht(bis zu 100%) verbraucht) bis sie die 200000 erreicht hat
-
dominik 0 schrieb:
Also, wenn Du keine Ahnung hast halt lieber die Klappe

Wer hat denn hier keine Ahnung... Ich habe dir lediglich einen Fingerzeig gegeben, etwas selber denken musst du halt auch.
-
Lass doch mal was anderes im Hintergrund laufen.