Sleep(10);



  • Was bringt eigentlich Sleep(10); ??

    Is ein Geschwindigkeitsregler, aber kann das jemand genau erklären?



  • Sleep(10) bringt den Rechner dazu, 10 millisekunden oder Takte oder was auch immer zu schlafen. Je nachdem welche API das ist. Hat eigentlich nichts mit geschwindigkeitsregelugn zu tun, nur dass dein Programm nciht sofort weitermacht.



  • Was vielleicht noch erwähnenswert wäre: Sleep gibt (zumindest unter Windows) den Prozessor an einen anderen Prozess oder Thread ab. Dann kann auch ein Sleep(0); in einer großen Berechnung nützlich sein, weil dann andere Programme (oder z.B. auch die grafische Oberfläche deines Programms) eher reagiert 🙂



  • ...unter Windows 10 Millisekunden unter linux 10 Sekunden.



  • Diese Funktion ist in der windows.h File definiert. Somit gibst du der CPU Zeit zum Atmen, da ja noch andere Prozesse laufen, die Rechenleistung benötigen. Viel mehr brauchst du die Funktion beim Schreiben von Automatisierungen. Wenn du also beispielsweise 30x auf FirmenPCs irgendwas installieren musst, dann kannst du zB ein Programm schreiben, was dieses irgendwas selbstständig instlalliert. Da muss man ja schonmal warten, bis irgendein Fenster auftaucht, oder irgendwas geschieht. Bis dahin legst du das Automatisierungsprogramm schlafen 🙂



  • Airdamn schrieb:

    ...unter Windows 10 Millisekunden unter linux 10 Sekunden.

    ist sleep nicht windowsspezifisch?



  • Nein, wobei Sleep für Windows groß geschrieben wird.
    Unter Linux gibt es sleep und usleep, letzteres wäre das äquivalent zu Sleep aus der WinAPI.



  • inline void SleepMilliSeconds(const unsigned int& msec) 
    { 
       #if defined WINDOWS
          ::Sleep(msec);
       #elif defined LINUX
          ::usleep(1000*msec); 
       #else
         #error "SleepMilliSeconds- UnknownMachine"
       #endif
    }
    


  • Airdamn schrieb:

    Nein, wobei Sleep für Windows groß geschrieben wird.
    Unter Linux gibt es sleep und usleep, letzteres wäre das äquivalent zu Sleep aus der WinAPI.

    ne, wenn dann ersteres.... denn u = micro --> usleep(microsec) 😉



  • muffmolch schrieb:

    Airdamn schrieb:

    Nein, wobei Sleep für Windows groß geschrieben wird.
    Unter Linux gibt es sleep und usleep, letzteres wäre das äquivalent zu Sleep aus der WinAPI.

    ne, wenn dann ersteres.... denn u = micro --> usleep(microsec) 😉

    Ok sleep unter linux erwartet die anzahl in Sekunden und usleep in Mikrosekunden.


Anmelden zum Antworten