【发布时间】:2019-10-13 19:26:42
【问题描述】:
我有一个应用程序订阅 CompositionTarget.Rendering 事件作为一种游戏“渲染循环”。如果我在回调中花费的时间少于约 20 毫秒,那么一切都很好,并且我的应用程序是响应式的。然而,如果我花时间在这上面,我订阅的输入事件(MouseMove、MouseWheel 等)不会被调用得那么频繁,所以虽然我的游戏仍然有 30fps 左右的下降帧速率,输入响应变成真的很慢而且无法使用。
如前所述,它以大约 30 fps 的速度呈现,但输入事件以大约 5-10 fps 的速度完成。
我认为这与试图维持 ~60FPS (16ms) 的 WPF 有关?所以它会限制输入调度程序以恢复一些性能?
有没有办法禁用这种“节流”?
【问题讨论】:
-
Setting lower framerate 有帮助,但在我的测试中只注册了大约 35% 的输入操作。
标签: c# wpf input rendering user-input