Kürzere Pause als Sleep(1) ???
-
Hallo,
ich würde gerne in verschiedenen Schleifen eine kurze Pause einlegen. Jedoch bin ich mit Sleep(1) auf eine Millisekunde beschrängt.
Gibt es eine Möglichkeit, diese Zeit zu verkürzen, ich sag mal um den Faktor 10, also 100µs. Aber selbst 0,5 ms wären mir schon sehr hilfreich.
Danke schon mal für jeden Tip.
Grüße
Franky
-
Unter Kylix3 (Linux) verwende ich folgenden Code:
stime.tv_sec = (time_t)0; // 1 = 1 sec stime.tv_nsec = 100000000; // 100ms oder entsrechend weniger nanosleep(&stime, NULL); // warte
Bin allerdings nicht sicher, ob das unter Windows genauso aussieht.
-
Nein, sieht unter Windows _NICHT_ so aus.
-
Sieh mal in die FAQ da hats nen Beitrag über genauere Timer. Unter Anderem wird da auch QueryPerformanceCounter bzw. QueryPerformanceFrequency benutzt und erklärt.
-junix
-
Danke schon mal.
Schade das nanosleep nicht funktioniert. Das wäre genau das Richtige.@junix
Das habe ich mir schon angesehen. Das Problem ist, wenn man daraus eine Art Timer machen will, muß man ständig die Ticks vergleichen.
Ich möchte aber gerade in diesen Pausen nichts machen, um die Auslastung nicht unnötig hoch zu trieben. Später sollen mehrere Anwendungen gleichzeitig laufen , und deshalb muß die Prozessorauslastung möglichst niedrig gehalten werden.Vieleicht gibt es ja doch noch etwas anderes?
Grüße
Franky
-
Ich vermute nicht. Ich schieb dich aber mal nach WinAPI...
-junix
-
Schau doch mal ob dir der Beitrag weiter hilft.
[url] www.codeguru.com/system/CreatingAHigh.html [/url].
Is für VC++ aber die Grundidee hilft dir eventuell weiter.MfG Spacelord
-
@Spacelord
Das könnte vielleicht was werden. Danke schon mal. Ich habe versucht, den Code in den Borland Builder zu übernehmen und dabei einen Haufen Fehlermedlungen geerntet.z.B. bei der Deklaration von
MMRESULT Mres;
E2303 Typnahme erwartet
E2139 In Deklaration fehlt: ;Kann da jemand etwas mit anfangen? Muß andere Veränderungen vornehmen? Danke.
Grüße
Franky
-
der braucht eine .h Datei damit er MMRESULT kennt
-
Aber MMRESULT steht in einer .h Datei.
Ich habe alles was unter class steht in die .h (delay.h) Datei kopiert und was unter Class Usage Sample steht in die .cpp (delay.cpp).
Dann in meiner Anwendung:
#include delay.h ... Delay(5);
Ist doch richtig soweit, oder nicht?
Grüße
Franky
-
MMRESULT ist im Header mmsystem.h(MSVC) als unsigned int definiert.
MfG Spacelord