如何解决如何以固定频率运行应用程序?
有没有办法让应用程序或线程以固定速率运行?
我正在尝试在联网客户端之间进行一些确定性模拟,并希望两台机器 (Windows) 以固定不变的速率运行或处理数据。这可能吗?
解决方法
您不能让现有应用程序以特定速度运行(可能有基于 VM 的解决方案可以使执行速度正常化,但我自己不知道这些)。
如果您编写自己的代码,通常的方法是在处理下一次迭代之间基本上休眠。它通常用于处理能力低于 CPU 能力的(简单)游戏。
伪代码:
while(true)
{
executeStep();
await Task.Delay(GetTimeforNextStep() - DateTime.Now.Utc);
}
请注意,消费级操作系统 (Windows/Linux/MacOS) 无法实现精确同步 - 您需要 RTOS 以实现精确的毫秒级计时。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。