Wait Funktion?
-
Hallo,
ich habe eine eine recht komplizierte Berechnung, welche stets unterschiedlich lang dauert...(in einer while schleife)
ich will moeglichst eine wait Funktion welche auf eine Bool Variable reagiert, gibts sowas?
bisher so geloest:
while (1) { if ((GetTickCount()-t)>=2000) { berechnung(); t=GetTickCount(); } }somit wird alle 2s die berechnung durchgefuehrt. allerdings ist der CPU die ganze zeit ausgelastet und das will ich natuerlich nicht. kennt jemand eine wait funktion??? (nach schema waituntil(GetTickCount()-t)>=2000))
vielen dank schonmal
-
Da du sowieso unter Windows arbeitest, nimm Sleep. Lastet die CPU auch nicht aus.
-
ja habe das so gemacht..danke..sehr einfach

t=GetTickCount(); while (1) { berechnung(); p=GetTickCount(); if (2000-(p-t)>0) { Sleep(2000-(p-t)); } t=GetTickCount(); } }danke
-
Wieso machst du's nicht einfach so?
while(1) { Sleep(2000); berechnung(); }berechnung() wird alle 2 Sekunden ausgeführt. Mehr braucht man dazu nicht!

Übrigens, wie kommst du eigentlich aus deiner Endlos-Schleife 'raus? Ist das wirklich so beabsichtigt?
-
Er will wohl, dass alle zwei Sekunden, die Berechnung anfängt und nicht eine Pause von 2 Sekunden zwischen den unterscheidlich lang andauernden Berechnungen.
Sollte die Berechnung länger als 2 Sekunden dauern, wird garkeine Pause gemacht.Im Übrigen ist GetTickCount kein Standard-C++.

-
lagalopex schrieb:
Er will wohl, dass alle zwei Sekunden, die Berechnung anfängt und nicht eine Pause von 2 Sekunden zwischen den unterscheidlich lang andauernden Berechnungen.
Sollte die Berechnung länger als 2 Sekunden dauern, wird garkeine Pause gemacht.Logisch, hast natürlich Recht...
-
ja genau lagalopex hat recht...
inwirklichkeit ist das nut[rlich keine endlosschleife, das war nur ein bsp...wichtig war ja nur des handling mit der pause...
danke trotydem