WPF的CPU限制问题
本文关键字:问题 CPU WPF | 更新日期: 2023-09-27 18:21:28
我正在使用Vlc.DotNet开发WPF中的一个应用程序。我的笔记本电脑上播放的视频帧率很低,出现了问题。
经过一些研究,我发现这个问题与CPU节流有关。如果笔记本电脑电源配置文件处于BatterySaver模式,则存在问题。如果我把它切换到性能,一切都很好。在我看来,在BatterySaver模式下,它允许处理器节流,但由于某种原因,在应用程序需要时无法正确节流。有什么办法可以解决这个问题吗?
我试着用下面的代码设置优先级,但似乎没有什么不同。
System.Diagnostics.Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
Vlc.DotNet使用下一个渲染图像更新和ImageSource。我把这个源绑定到显示它的GUI上的一个图像上。我使用了WPF性能工具包,可以看到发生了什么,但不知道为什么。一旦开始播放,AKA以30fps的速度更新GUI上的图像,整个应用程序的帧速率就会下降到5fps左右。
您是否尝试过切换到软件渲染以避免CPU断电的瓶颈?我知道WPF使用单独的线程进行渲染,我不确定你是否可以从Process.Threads访问它。我过去所做的是附加到电源模式更改事件,并像这样动态切换模式,这样电源模式更改就不会切换到硬件渲染。不确定这是否有效,因为我不知道你的具体瓶颈是什么,但希望这能为你指明一个好的方向。