gpt4 book ai didi

c# - 提高 WPF 控件加载资源的性能

转载 作者:太空狗 更新时间:2023-10-29 20:42:09 25 4
gpt4 key购买 nike

我目前在应用程序中大量使用 DevExpress 控件。这些控件很棒,可以显着加快开发时间(因此,我不想放弃它们)但是,我对它们的性能有一些疑问。

我的应用程序是一个 Shell/Modules/Views&ViewModels 应用程序(它遵循许多您会在 Prism 中找到的设计模式)。

第一次加载 View 时,它需要很长时间才能显示(在我的一些用户 PC 上,机器速度很慢,我们说的是 5 秒以上只是卡在那里)。花费的时间显然取决于 DX 控件的使用情况(那里有多少应用程序以前没有见过的控件)。

当您销毁 View 并重新打开它时,它会在不到一秒的时间内打开。我的测试用例/性能配置文件中的 ViewModel 每次都重新创建 - 因此在 View 调用之间我的代码中没有共享状态(没有单例注入(inject)对象)。

经过一些讨论和研究后,我似乎已将问题缩小到按需加载 DX 控件的模板文件。这里有一个线程: http://www.devexpress.com/Support/Center/Issues/ViewIssue.aspx?issueid=Q382256其中引用: http://www.devexpress.com/Support/Center/p/B201967.aspx & DevExpress controls for WPF load time这些线程中描述的解决方案是显示加载指示器或在启动时使用带有控件的隐藏窗口。这两个选项都不是我想要做的(有趣的是,当我尝试一个简单的示例时,隐藏窗口选项似乎没有获得太多性能——这也表明我可能遗漏了一些东西)。

我希望做的是在后台线程上预加载我知道我需要的模板文件。有什么办法可以在 WPF 中做到这一点吗? (我认为这更像是一个通用的 WPF 事物,而不是 DevExpress 事物——即使它需要在 DX 库本身中实现)。

对我或 DevExpress 的人有什么想法吗?

最佳答案

您可以在后台线程中做的是预加载所有需要的程序集。还要确保它们是 nged-ed。 UI 控件需要从 UI 线程初始化。

关于c# - 提高 WPF 控件加载资源的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396151/

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