C ++ 11 için güncellenmiş bir cevap:
sleep_forVe sleep_untilişlevlerini kullanın :
#include <chrono>
#include <thread>
int main() {
using namespace std::this_thread;
using namespace std::chrono;
sleep_for(nanoseconds(10));
sleep_until(system_clock::now() + seconds(1));
}
Bu işlevleri ile sürekli daha iyi çözünürlük için yeni fonksiyonlar eklemek için bir ihtiyaç artık yok: sleep, usleep, nanosleepvb sleep_forve sleep_untilüzerinden herhangi bir çözünürlük değerlerini kabul edebilir şablon fonksiyonları chronotürleri; saat, saniye, femtosaniye vb.
14 C ++ size daha fazla için hazır bilgi ekler içeren kod kolaylaştırabilirsiniz nanosecondsve seconds:
#include <chrono>
#include <thread>
int main() {
using namespace std::this_thread;
using namespace std::chrono_literals;
using std::chrono::system_clock;
sleep_for(10ns);
sleep_until(system_clock::now() + 1s);
}
Bir uykunun gerçek süresinin uygulamaya bağlı olduğuna dikkat edin: 10 nanosaniye uyumayı isteyebilirsiniz, ancak bir uygulama, yapabileceği en kısa süre buysa, bunun yerine bir milisaniye uykuya geçebilir.