2023-05-14 07:00:05

休眠毫秒

我知道POSIX休眠(x)函数使程序休眠x秒。C++中是否有一个函数可以让程序休眠x毫秒?


当前回答

选择调用是一种提高精度的方法(睡眠时间可以以纳秒为单位)。

其他回答

在C++11中,您可以使用标准库设施来实现这一点:

#include <chrono>
#include <thread>
std::this_thread::sleep_for(std::chrono::milliseconds(x));

清晰易读,无需猜测sleep()函数使用的单位。

根据您的平台,您可以使用usleep或nanosleep。usleep已被弃用,并已从最新的POSIX标准中删除;纳米睡眠是优选的。

选择调用是一种提高精度的方法(睡眠时间可以以纳秒为单位)。

我使用这个:

#include <thread>
#define sleepms(val) std::this_thread::sleep_for(val##ms)

例子:

sleepms(200);

纳米睡眠是比usleep更好的选择,它对中断更有弹性。