0
我試圖在wxPython應用程序中運行物理模擬(使用ODE)。我第一次嘗試使用計時器以100Hz運行我的模擬,但實際上它運行在接近60Hz的頻率。模擬的速率非常重要,所以我編寫了一個睡眠時間爲0.01秒的小線程,然後(通過wx.PostEvent)向運行(並呈現)模擬的主UI線程發送消息。wx.Python中的高分辨率時序
這完全掛起了應用程序,並且從日誌記錄中我可以看到並非所有正在發送的事件(以100Hz)正在處理中。因此,我認爲我正在填充消息隊列,並且我的用戶界面停止了。
當我設置我的線程運行在50Hz時,所有工作正常。但我的意思是,這是2012年,我有八個內核運行在一個荒謬的千兆赫茲或其他任何數量。在我看來,精確的100Hz並不是很重要。從長遠來看,它必須是準確的,一些抖動(比方說10%)完全沒問題。
任何想法?這裏是由順便
def TimerThreadFunction(self):
while self.ContinueTimer:
time.sleep(0.01)
wx.PostEvent(self.frame, TickEvent())
但真正的問題是事實,我甚至無法在接近100Hz時發送我的消息,這看起來很荒唐。一旦我開始了,我可以嘗試你的方法來保持我的模擬時間和實時同步。 –