1、std::this_thread::sleep_for在windows下精度,只有15ms左右
2、如果有更高精度的定时需求,请另寻他路,不要有对std::this_thread::sleep_for有非分之想
3、折中方法,但占CPU资源,不推荐在循环中使用
void delay_us(size_t us)
{
auto start = std::chrono::system_clock::now();
while (1)
{
auto end = std::chrono::system_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
if (duration.count() > us) break;
}
}
【备注】在100us延时以上,准确度才较高