0

背景:车辆动力学有一个发展,作为增加现实行为的尝试,计算结果是实时进行的,与现实生活1:1比例,即现实生活中的1秒=计算结果中的1秒。

问题:在 Windows XP/Vista/7 甚至 MacOS 下,一切都按预期运行,但是在 Windows 8 中,应用程序的运行速度(看起来是这样)正好慢了 2 倍。

详细信息: 延迟由

System.Threading.Thread.Sleep((Int32)time_delta)

为time_delta,根据需要计算以匹配1:1的时间比例。

在 Windows 8 下,现实生活中需要 1 秒的时间需要 2 秒,但是我可以使用 time_delta/2.0f 但这似乎是一个肮脏的把戏。

问题:有没有适当的方法来解决这个问题?

参考资料: 我搜索了一下,发现好像是报的问题: Missing .NET features in Metro style application?

这个链接说http://msdn.microsoft.com/en-us/library/d00bd51t.aspx在 Windows 8 下支持 Thread.Sleep。

提前致谢。


更新:我错了,Windows 8 的延迟并不完全慢 2 倍,Sleep() 的分辨率似乎发生了巨大变化并且(至少在我的测试下)变化很大,所以我最终使用实时调整每个我检测到偏移量的时间,有点 CPU 密集型,但现在正在工作。

4

1 回答 1

0

您是否尝试使用 TimeSpan(例如 TimeSpan.FromSeconds(time_delta))而不是 Int32?

于 2013-04-23T19:32:00.363 回答