所以我建立了一個具有物理引擎和顯示的小應用程序。顯示器連接到處理物理引擎的控制器(實際上,它是處理控制器的視圖模型,但詳細信息)。僞實時線程
當前控制器是一個委託,通過開始調用和取消令牌取消激活,然後通過endinvoke獲得。在lambda刷內PropertyChanged(掛鉤到INotifyPropertyChanged),使UI保持最新。
從我所瞭解的BeginInvoke方法激活一個任務而不是另一個線程(它在我的計算機上確實激活了另一個線程,但這不是我讀過的讀物的保證,它取決於線程池的方式希望完成任務),這對我所做的所有測試都是很好的。在CancellationToken被終止之前,lambda不會完成。它有一個睡眠和一個更新(所以它是模擬實時物理引擎...這是粗糙的,但我不需要真正的實時精度,只是足以得到一個感覺)
我的問題是,這將在其他計算機上工作,還是應該切換到我啓動並取消的顯式線程?我想到的場景是在1核心處理器上,是否有可能第二項任務將大大減少處理器時間,從而使我的可接受的不準確模型變成不可接受的錯誤(即在切換之前等待毫秒而不是微秒?)。或者,他們的一些更好的方法,我沒有提出?
這是.NET嗎?如果是這樣,您可能希望將您的問題與您正在使用的編程語言一起標記。 – 2010-11-18 19:17:17