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