协慌网

登录 贡献 社区

睡眠数毫秒

我知道 POSIX sleep(x)函数使程序休眠 x 秒。在 C ++ 中是否有使程序休眠 x毫秒的功能?

答案

在 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;
}

该答案是重复的,之前 已在此问题中发布。也许您也可以在那里找到一些可用的答案。