prioritäten
-
hallo,
habe ein (fullscreen)ddraw programm und wenn ich per alt+tab rausspringe auf den desktop dann hat cpu immernoch 100% .. wenn man jetzt andere progs benutzen will ist das nervend und langsam .. würde gerne mein ddraw programm auf einen niedrigeren level setzen .. kann mir einer dabei hilfen wie?
-
Bist du dir sicher, dass es sich nicht um einen Fehler im Code handelt?
-
nunja bei ddraw haste eine while schleife die immer durchlaufen wird .. und eine while hat nunmal 100% cpu.
gibts dafür keine einfache lösung die priorität des programmes zu setzen?
diverse encoder programme bieten ja ein umschalten auf niedrig/normal/..
-
-
ah doch so einfach .. dankö schhön
-
mastermindx schrieb:
nunja bei ddraw haste eine while schleife die immer durchlaufen wird .. und eine while hat nunmal 100% cpu.
Und in der while-Schleife wird PeekMessage aufgerufen, oder?
Wenn die Anwendung minimiert ist, kannst du doch anstelle PeekMessage einfach GetMessage aufrufen.
Dann zeigt dein Programm Windows, dass es die CPU erst wieder braucht, wenn der User das Fenster hochholt.Das Gewurschtel mit den Prioritäten erscheint mir wie ein unsauberer Hack, zumindest bei einem Spiel.
-
man kann das mit der 100% auslastung auch einfach umgehen in dem man in dem while-loop einfach seine time-slice mit Sleep(0) beendet
while (1) { ... Sleep (0); }
-
Dann doch lieber SwitchToThread().
Mit Sleep(0) verzichtet ein Thread nur dann auf seine Zeitscheibe, wenn ein anderer Thread gleicher oder höherer Priorität bereit ist. SwitchToThread() lässt aber auch Threads mit niedrigerer Priorität zum Zuge kommen.Was spricht nochmal gegen GetMessage()?