我怎样才能运行应用程序以固定的频率?

How can I run applications at a fixed frequency?

有没有办法使应用程序或线程运行以固定速率运行?

我正在尝试在联网的客户端之间进行一些确定性模拟,并希望两台机器 (Windows) 到 运行 或以固定不变的速率处理数据。这可能吗?

您无法以特定速度将现有应用程序 运行(可能有基于 VM 的解决方案可以使执行速度正常化,但我自己并不知道这些)。

如果您编写自己的代码,通常的方法是基本上在处理下一次迭代之间休眠。它通常用于处理能力低于 CPU 的(简单)游戏。

伪代码:

 while(true)
 {
     executeStep();
     await Task.Delay(GetTimeforNextStep() - DateTime.Now.Utc);
 }

请注意,消费级 OS (Windows/Linux/MacOS) 无法实现精确同步 - 您需要 RTOS 以获得精确的毫秒级计时。