gpt4 book ai didi

c# - WPF 的 CPU throttle 问题

转载 作者:行者123 更新时间:2023-11-30 17:46:44 28 4
gpt4 key购买 nike

我正在使用 Vlc.DotNet 在 WPF 中开发一个应用程序。我在笔记本电脑上以糟糕的帧速率播放视频时遇到问题。

经过一番研究后,我发现问题与 CPU throttle 有关。如果笔记本电脑电源配置文件处于 BatterySaver 模式,则会出现问题。如果我将它切换到性能,一切正常。在我看来,在 BatterySaver 模式下,它允许处理器 throttle ,并且由于某种原因在应用程序需要时不能正确 throttle 。无论如何我可以解决这个问题吗?

我尝试使用下面的代码设置优先级,但似乎没有什么不同。

System.Diagnostics.Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;

Vlc.DotNet 使用下一个渲染图像更新和 ImageSource。我将此源绑定(bind)到显示它的 GUI 上的图像。我使用了 WPF 性能工具包,可以看到发生了什么,但不知道为什么。一旦它开始播放,也就是以 30fps 的速度更新 GUI 上的图像,整个应用程序的帧率就会下降到 5fps 左右。

最佳答案

你试过切换到software rendering吗?避免CPU掉电瓶颈?我知道 WPF 使用单独的线程进行渲染,我不确定您是否可以从 Process.Threads 访问它。我过去所做的是附加到 power mode changed event并动态切换模式like this因此电源模式更改不会切换到硬件渲染。不确定这是否可行,因为我不知道您的具体瓶颈是什么,但希望这能为您指明一个好的方向。

关于c# - WPF 的 CPU throttle 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790165/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com