Timing kritischer code, CPU Auslastung
-
Ich möchte, dass ein bestimmter teil von meinem code 15 mal pro sekunde in einem regelmässigen intervall ausgeführt wird. Das programm soll die CPU in der toten zeit dazwischen nicht belasten.
Zur zeit hab ich einen zeitcheck in einer while schleife. das führt natürlich dazu dass die CPU zu 100% ausgelastet ist. Eigentlich wollte ich die funktion delay aus dos.h dazu verwenden. Unter windows scheint das aber nicht zu gehen (obwohl's nur ein konsolen-programm ist).
Kann mir jemand sagen wie ich das problem am besten anpacke? Braucht man dafür threads? oder wie oder was? Für ein kleines code beispiel wäre ich dankbar.
Ich verwende übrigens borland c++ 5.02 unter windows xp.
Gruz,
tREXX
-
In windows.h steckt eine Funktion Sleep(DWORD millisecs), die könnte dir hier helfen. Die System-Uptime in Millisekunden kriegst du über GetTickCount() raus. Beide sind nicht allzu genau, aber für 15x pro Sekunde wird es noch reichen.
-
Wow, danke für die schnelle antwort! CPU Auslastung ist von 100% auf 1% geschrumpft
thanx a lot,
tREXX