Miegas milisekundėmis

Žinau, kad POSIX sleep(x) funkcija priverčia programą užmigti x sekundžių. Ar yra funkcija, kuri C++ kalba priverstų programą miegoti x miliisekundžių?

Sprendimas

Atkreipkite dėmesį, kad nėra standartinės C API milisekundėms, todėl (Unix sistemoje) turėsite pasitenkinti usleep, kuri priima mikrosekundes:

#include 

unsigned int microseconds;
...
usleep(microseconds);
Komentarai (4)

Norėdami išlikti nešiojami, miegui galite naudoti Boost::Thread:

#include 

int main()
{
    //waits 2 seconds
    boost::this_thread::sleep( boost::posix_time::seconds(1) );
    boost::this_thread::sleep( boost::posix_time::milliseconds(1000) );

    return 0;
}

Šis atsakymas dubliuojasi ir jau buvo paskelbtas šis klausimas anksčiau. Galbūt ten taip pat rasite naudingų atsakymų .

Komentarai (1)

nanosleep yra geresnis pasirinkimas nei usleep - jis atsparesnis pertraukimams.

Komentarai (1)