我怎样才能运行应用程序以固定的频率?
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 以获得精确的毫秒级计时。
有没有办法使应用程序或线程运行以固定速率运行?
我正在尝试在联网的客户端之间进行一些确定性模拟,并希望两台机器 (Windows) 到 运行 或以固定不变的速率处理数据。这可能吗?
您无法以特定速度将现有应用程序 运行(可能有基于 VM 的解决方案可以使执行速度正常化,但我自己并不知道这些)。
如果您编写自己的代码,通常的方法是基本上在处理下一次迭代之间休眠。它通常用于处理能力低于 CPU 的(简单)游戏。
伪代码:
while(true)
{
executeStep();
await Task.Delay(GetTimeforNextStep() - DateTime.Now.Utc);
}
请注意,消费级 OS (Windows/Linux/MacOS) 无法实现精确同步 - 您需要 RTOS 以获得精确的毫秒级计时。