Угу. Но это работает только в C++11 и later.
#include <chrono>
#include <thread>
...
std::this_thread::sleep_for(std::chrono::milliseconds(ms));
где ms
это количество времени, которое вы хотите спать в миллисекундах.
Вы также можете заменить milliseconds
с nanoseconds
, microseconds
, seconds
, minutes
или hours
. (Они являются специализациями типа std::chrono::duration.)
Update: В C++14, если вы спите в течение заданного промежутка времени, например, за 100 миллисекунд, std::chrono::milliseconds(100)
может быть записана в виде 100ms
. Это связано с user defined literals, которые были введены в C++11. В C++14chrono
библиотека была расширена, чтобы включать в себя следующие определяемые пользователем литералов:
Эффективно это означает, что вы можете написать что-то вроде этого.
#include <chrono>
#include <thread>
using namespace std::literals::chrono_literals;
std::this_thread::sleep_for(100ms);
Обратите внимание, что, в то время как using namespace std::literals::chrono_literals
обеспечивает наименьшее количество namespace pollution, эти операторы также доступны, когда using namespace std::literals
или using namespace std::chrono
.
Если вы не возражаете процессор жужжание прочь и иметь C++ 11, вы можете использовать ''. –
chris
Зачем вам прогонять процессор? Если у вас есть C++ 11, вы можете использовать что-то вроде 'std :: this_thread :: sleep_for (std :: chrono :: milliseconds (n))', который не должен потреблять какой-либо CPU. –
его чистый C++. – ElSajko