usleep unter windows



  • Gehört hier vielleicht nicht rein, aber da mir dieses Board schon oft geholfen hat, möchte ich auch mal was nützliches tun:

    Funktion usleep (Microsekunden lang schlafen) (unter *nix fast Standard unter Windows sucht man vergebens, deshalb die Funktion - vielleicht brauchts ja irgendwann einer 😉

    void usleep(unsigned int usec)
    {
    	HANDLE timer;
    	LARGE_INTEGER ft;
    
    	due.QuadPart = -(10 * (__int64)usec);
    
    //Timer Funktionen ab WINNT verfügbar
    	timer = CreateWaitableTimer(NULL, TRUE, NULL);
    	SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0);
    	WaitForSingleObject(timer, INFINITE);
    	CloseHandle(timer);
    }
    

    Meiner Meinung nach besser, als usleep über PerformanceCounter 👍



  • Wenn man schon WinAPI verwendet, was ist mit Sleep(millisec) oder SleepEx 😉 ?



  • CDW schrieb:

    Wenn man schon WinAPI verwendet, was ist mit Sleep(millisec) oder SleepEx 😉 ?

    Es geht um Microsekunden, nicht um Millisekunden 😉 - nur wozu man das wirklich brauchen kann, das weiß ich nicht 🙄



  • Waitable Timer hab ich auch schonmal bei OpenGL-Spielereien als Framerate-Begrenzer benutzt, schien mir genauer als timeGetTime() und GetTickCount() zu sein, von Sleep() wollen wir erst gar nicht reden 😉



  • Sowas könnt ihr vergessen. Allein die Ausführungszeit der API-Aufrufe braucht mehrere µs.


Anmelden zum Antworten