gpt4 book ai didi

wpf - 如何降低WPF应用程序的CPU使用率?

转载 作者:行者123 更新时间:2023-12-02 17:00:54 29 4
gpt4 key购买 nike

我的 WPF 应用程序在大约 30 分钟后使用了高 CPU 使用率,然后我打破了应用程序以找出哪些代码消耗了高 CPU 使用率,但我什么也没得到。

Visual Studio 2008 无法显示当前正在运行的代码,但我在“调用堆栈”面板中找到了这一点:

[In a sleep, wait, or join] mscorlib.dll!System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) + 0x8f bytes System.dll!System.Net.TimerThread.ThreadProc() + 0x2f9 bytes    mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x66 bytes   mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6f bytes    mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes   

这是什么? CPU使用率高是怎么回事?以及如何降低CPU使用率?

最佳答案

我们使用“WPF 性能分析工具”/Visual Profile 来找出哪些事件占用最多的 CPU 使用率。 Tick(TimeManager.Tick()) 占用了应用程序大约 40% 的 CPU 使用率。然后我们一一删除了所有的动画控件,最后我们发现有一个 Storyboard会在大约30分钟后增加CPU使用率。

然后我们改变了形式:


calendarStoryboard.Begin(txtMessage, HandoffBehavior.Compose, true);


calendarStoryboard.Begin(txtMessage, HandoffBehavior.SnapshotAndReplace, true);

此问题已修复。关于HandoffBehavior的更多信息请引用msdn:

http://msdn.microsoft.com/en-us/library/system.windows.media.animation.handoffbehavior.aspx

关于wpf - 如何降低WPF应用程序的CPU使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824832/

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