Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#11

AW: CPU Auslastung eines Delphi-Programms drosseln

  Alt 16. Jun 2010, 09:47
Hat Sleep() bei älteren Delphiversionen nicht aktiv gewartet?
Was meinst du mit "aktiv gewartet" ?

Sleep() ruft nur die entsprechende Windowsfunktion auf. Unmd die sorgt dafür, dass dem Thread die nächsten x Millisekunden keine Rechenzeit zugewiesen wird. Wenn man also Sleep(1000) aufruft, friert der Thread für 1 Sekunde ein, weil er keine Rechenzeit mehr bekommt. (dafür sorgt der Scheduler voin Windows)
Ein Sleep(0) erscheint damit im ersten Moment sinnlos. Es sorgt aber dafür, dass der Thread sofort von der CPU genommen wird und hinten in die Warteschlange kommt. Also die Abarbeitung wird vorzeitig abgebrochen und der nächste Thread kommt an die Reihe.
  Mit Zitat antworten Zitat