在 C ++ 11 中,您可以使用标准库工具来执行此操作:
#include <chrono>
#include <thread>
std::this_thread::sleep_for(std::chrono::milliseconds(x));
清晰易读,无需再猜测sleep()
函数采用的单位。
请注意,毫秒级没有标准的 C API,因此(在 Unix 上)您必须满足usleep
,该时间接受微秒:
#include <unistd.h>
unsigned int microseconds;
...
usleep(microseconds);
为了保持可移植性,您可以使用Boost :: Thread进行睡眠:
#include <boost/thread/thread.hpp>
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;
}
该答案是重复的,之前 已在此问题中发布。也许您也可以在那里找到一些可用的答案。