Questa roba divora la CPU, e tra l'altro la time normalmente non ha abbastanza risoluzione per lavorare con intervalli inferiori al secondo...Originariamente inviato da Scara95
codice:#include <time.h> void sleep(double sleeptime) { time_t start = time(NULL); while(difftime(time(NULL), start) < sleeptime); }
Il modo "giusto" è usare la Sleep su Windows e la usleep su Linux/sistemi POSIX; puoi "condensare" i due approcci in una sola funzione con qualche trucco di preprocessore:
codice:#if defined(_WIN32) #include <windows.h> #elif defined(_POSIX_VERSION) #include <unistd.h> #endif void sleep_msec(unsigned int msec) { #if defined(_WIN32) Sleep(msec); #elif defined(_POSIX_VERSION) usleep(msec*1000u); #else #error Unsupported OS. #endif }


Rispondi quotando