可能重复:
睡眠时间小于一毫秒
如何使程序睡眠纳秒?我搜索了互联网,我发现了几种睡眠方式,但是:
windows.h的Sleep()睡眠时间只有几毫秒.
ctime的nanosleep()是仅适用于POSIX系统,而我使用的是Windows.
我也试过这个:
int usleep(long usec)
{
struct timeval tv;
tv.tv_sec = usec/1000000L;
tv.tv_usec = usec%1000000L;
return select(0, 0, 0, 0, &tv);
};
Run Code Online (Sandbox Code Playgroud)
但Code :: Blocks说:
obj\Release\main.o:main.cpp|| undefined reference to `select@20'|
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西,但一切都失败了.我该怎么办?
inf*_*inf 12
使用C++ 11
#include <chrono>
#include <thread>
...
std::this_thread::sleep_for(std::chrono::nanoseconds(1));
Run Code Online (Sandbox Code Playgroud)
请注意,实现可能会比给定时段睡眠时间更长.
您还应该注意到,有一个调度程序,它可能不允许短于时间片的睡眠(大约 4 毫秒 - 10 毫秒,具体取决于您的 Windows 和机器)。睡眠时间少于这个时间是不可能的
本文建议使用 Win32timeBeginPeriod()来实现这一目标。
| 归档时间: |
|
| 查看次数: |
9383 次 |
| 最近记录: |