WPF:优化具有5000多个元素的Canvas的加载时间和内存使用量

时间:2018-04-26 09:48:29

标签: c# wpf optimization lazy-loading software-design

enter image description here

如上图所示,我的应用程序有~5000个元素绘制到Canvas。

由于这些元素众多,我有两个问题:

  1. 内存使用量约为3 GB

  2. 加载时间约为4分钟

  3. 我需要对此进行优化。

    E.g。如图所示,我们使用组合框将项目源5000与字符串项目列表绑定。

    有没有什么方法可以使用相同的项目源位置,而不是每次为5000个元素中的每一个创建一个新的?这可以解决内存使用问题......

    关于加载时间,我现在不用太担心。

    但是,我目前有一个进度条显示所有这些元素的加载进度,但它不能按预期工作(它在加载前关闭)。我认为是这样的,因为我们不能同时运行两个STA线程。

    如何在每个元素成功加载到画布之前保持此进度条的工作?我没有找到任何可以将元素成功加载到画布的事件。

    有关如何改进此应用程序的任何想法?欢迎提出建议。

0 个答案:

没有答案