C# 线程。睡眠不能在Windows 8下使用Silverlight 5

C# 线程。睡眠不能在Windows 8下使用Silverlight 5,c#,silverlight,windows-8,thread-sleep,C#,Silverlight,Windows 8,Thread Sleep,背景:车辆动力学有了新的发展,为了增加真实行为,计算结果以1:1的比例实时执行到现实生活中,即现实生活中的1秒=计算结果中的1秒 问题:在Windows XP/Vista/7甚至MacOS下,一切都按预期运行,但在Windows 8中,应用程序的运行速度(似乎)要慢2倍 详细信息: 延迟由以下人员执行: System.Threading.Thread.Sleep((Int32)time_delta) 为时间增量,根据需要计算,以匹配1:1的时间比率 在Windows8下,现实生活中需要1秒的时

背景:车辆动力学有了新的发展,为了增加真实行为,计算结果以1:1的比例实时执行到现实生活中,即现实生活中的1秒=计算结果中的1秒

问题:在Windows XP/Vista/7甚至MacOS下,一切都按预期运行,但在Windows 8中,应用程序的运行速度(似乎)要慢2倍

详细信息: 延迟由以下人员执行:

System.Threading.Thread.Sleep((Int32)time_delta)
为时间增量,根据需要计算,以匹配1:1的时间比率

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

问题:有没有合适的方法解决这个问题

参考文献: 我搜索并发现似乎是报告的问题:

此链接表示Windows 8支持Thread.Sleep

提前谢谢



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

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

d是否可以验证
睡眠(1000)
实际需要2000毫秒?或者您的程序正在进行一些较小的睡眠<例如,代码>睡眠(7),很可能需要15毫秒,因为
睡眠
的分辨率可能不在毫秒级。@JimMischel Small根据需要四处睡眠,这似乎是个问题,我正在考虑将所有延迟都集中在一个上,如果GUI在实时更新时没有失去同步,请首先查看。将在测试后更新。为什么会有不同?@Boluc没有区别,现在缩小到Sleep()分辨率