我正在做一个模拟项目,我遇到了一个问题。
我有step()
一个被调用的函数,它由main()
.
该函数需要以精确的实时间隔调用。我已经实施了一个解决方案with std::this_thread::sleep_for
,但正如它所说,它会at least
在给定的时间内休眠。随着步数越来越小,问题变得越来越大。使用 20ms 步长,实时(提前)和仿真时间之间的差异在实际时间经过的第 10 秒处变为 1 秒。
我遇到了多媒体计时器,在实施之前我有两个问题。
是否有跨平台方法而不是多媒体计时器?(除了明显的 cpu 杀手while();
循环)
多媒体计时器是否足以满足至少 1ms 的线程暂停和恢复精度?