3

在我的 WPF 项目中,如果我打开一个窗口,cpu 使用率大约是 30%-50%,但是当我最小化这个窗口时,cpu 使用率下降到 1%。有人知道原因吗?谢谢

4

2 回答 2

5

你的屏幕上有很多绑定(两种方式)吗?这可能会导致高 CPU。还是很多动画?

最终,您可以使用 WPF 性能套件来监控导致这种高 CPU 负载的原因:http: //msdn.microsoft.com/en-us/library/aa969767.aspx

于 2012-04-11T13:00:48.993 回答
2

罗迪的好帖子,我只是要添加一些东西,使用答案而不是评论,因为评论有最大限制..

我还建议使用 Ants Profiler,它有 2 周的试用期 - 足以弄清楚发生了什么。此外,如果您发布一些代码,这里的人们可以快速指出一些事情。

例如,如果您拥有如 Rudy 指出的大量绑定和动画,以及过于复杂的控件和控件模板。质疑堆栈面板内、边框内的堆栈面板的不必要组合...使用 TextBlocks 而不是 Labels,或者是否需要 TextBoxes,如果它们是只读的,请使用 TextBlocks + Border。您的 ItemControl 的项目是否过于复杂?ETC...

此外,Ants Profiler 可以向您展示您的“僵尸”对象。您是否正确处置,是回收对象还是每次创建新的复杂结构(例如,在选择新的日期范围以显示您的数据时),然后重新启用它们。如果您有数据网格单元格,是否每个单元格都需要昂贵的东西……弹出窗口和额外的边框。它在网格上。名单可以继续。

长话短说 - WPF 是一头猪:所以你可能不得不精简一些东西,或者/或者更有创造力,以减少开销来保持美观。

PS不要忘记发布一些代码...

于 2012-04-11T16:12:33.637 回答