8

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

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

首次加载视图时,需要很长时间才能显示(在我的一些用户 PC 上使用慢速机器,我们所说的只是挂在那里 5 秒以上)。所花费的时间显然取决于 DX 控件的使用(有多少应用程序以前从未见过)。

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

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

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

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

4

1 回答 1

0

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

于 2014-04-06T10:10:16.333 回答