WPF的D3DImage.IsFrontBufferAvailable可以忽略吗?
Can WPF's D3DImage.IsFrontBufferAvailable be ignored?
我总是遵循 WPF D3DImage.IsFrontBufferAvailable 的常见建议,并在前台缓冲区不可用时停止渲染。但是在重置 D3D 设备后,这个 属性 有时会卡在 false
并且再也不会变成 true
。
除非我转到调试器并忽略 属性 并继续渲染,否则它实际上会变回 true
并且一切都会重新开始。
即使完全删除 D3DImage.IsFrontBufferAvailable
检查并始终完全忽略 属性 似乎 也能正常工作。
似乎也是 recommended by some people 其他原因:
Note that even if the IsFrontBufferAvailable
flag is stating that it is unavailable, you’ll still be able to render properly. The trick is to simply ignore the flag.
完全忽略它的缺点是什么? (或者是否有其他一些技巧让它不会停止工作?)
我认为如果程序未显示(例如,如果用户处于锁屏状态),建议节省资源。
根据我的经验,您可以放心地忽略它,即使未向用户显示 UI,它也会继续呈现。
如果您的应用程序不需要大量资源,这不会对功耗产生太大影响。
我总是遵循 WPF D3DImage.IsFrontBufferAvailable 的常见建议,并在前台缓冲区不可用时停止渲染。但是在重置 D3D 设备后,这个 属性 有时会卡在 false
并且再也不会变成 true
。
除非我转到调试器并忽略 属性 并继续渲染,否则它实际上会变回 true
并且一切都会重新开始。
即使完全删除 D3DImage.IsFrontBufferAvailable
检查并始终完全忽略 属性 似乎 也能正常工作。
似乎也是 recommended by some people 其他原因:
Note that even if the
IsFrontBufferAvailable
flag is stating that it is unavailable, you’ll still be able to render properly. The trick is to simply ignore the flag.
完全忽略它的缺点是什么? (或者是否有其他一些技巧让它不会停止工作?)
我认为如果程序未显示(例如,如果用户处于锁屏状态),建议节省资源。
根据我的经验,您可以放心地忽略它,即使未向用户显示 UI,它也会继续呈现。
如果您的应用程序不需要大量资源,这不会对功耗产生太大影响。