我有一个应用程序订阅了CompositionTarget.Render事件,作为一种游戏"渲染循环"。如果我在回调中花费的时间少于 ~20 毫秒左右,情况很好,我的应用程序响应迅速。然而,如果我花任何时间在这上面,我订阅的输入事件(MouseMove,MouseWheel等(几乎不会被调用,因此尽管我的游戏仍然具有30fps左右的反转帧速率,但输入响应变得非常滞后且无法使用。
如前所述,它以大约 30fps 的速度渲染,但输入事件以大约 5-10fps 的速度呈现。
我认为这与 WPF 试图保持 ~60FPS(16 毫秒(有关? 所以它限制了输入调度程序,希望重新获得一些性能?
有没有办法禁用这种"节流"?
CompositionTarget.Rendering
事件可以针对单个帧触发多次,您可以将其扩展到每个帧仅触发一次。这有助于提高性能。在此处阅读更多内容。
这里有一个实现。
作业工具错误
你应该问问自己:
为什么我使用没有明确设计的平台开发游戏?