背景:车辆动力学有一个发展,作为增加现实行为的尝试,计算结果是实时进行的,与现实生活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 密集型,但现在正在工作。