背景:有一個車輛動力學的發展,作爲嘗試添加現實行爲,計算結果是實時執行的,並且以1:1的比例實時生成,即,現實生活中1秒=計算結果中1秒。Thread.Sleep不適用於Windows 8下的Silverlight 5
問題:在Windows XP/Vista/7甚至MacOS下,一切正常,但在Windows 8中,應用程序運行速度(似乎是)要慢兩倍。
詳細內容:1的時間比例: 延遲由
System.Threading.Thread.Sleep((Int32)time_delta)
作爲TIME_DELTA根據需要以匹配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說了Thread.Sleep事先Windows 8的下
謝謝支持。
更新:我錯了,Windows 8的延遲不完全2慢倍,睡眠()分辨率似乎已經發生了巨大變化和(至少在我的測試)是非常多變的,所以每次我檢測到一個偏移量時,我最終都會使用實時調整,這一點CPU密集型,但現在正在工作。
d您可以驗證「睡眠(1000)」實際上需要2,000毫秒嗎?或者你的程序做了一些較小的睡眠?例如,「睡眠(7)」可能需要15毫秒,因爲「睡眠」的分辨率可能不是毫秒級。 – 2013-04-23 20:04:41
@JimMischel Small根據需要在這裏和那裏睡覺,這似乎是問題所在,我正考慮讓所有的延遲都在一個單一的延遲上,首先查看GUI是否因爲實時更新而不同步。測試後會更新。 – nxgtrturbo 2013-04-23 22:22:55