首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF应用程序启动太慢

WPF应用程序启动太慢
EN

Stack Overflow用户
提问于 2011-09-12 10:36:30
回答 3查看 324关注 0票数 0

我的当前应用程序存在问题,该应用程序是用WPF在C#中开发的。应用程序由不同的流程图组成,每个流程图包含在自己单独的窗口中。

在启动时,所有流程图类都在其窗口中实例化和初始化。然后使窗口不可见,并显示流程图菜单。

有了每一个新的流程图,应用程序的启动速度就会变慢。窗口初始化似乎消耗了大量时间。

我如何处理这个问题?

我想到初始化时,第一次需要或背景初始化。

注意:我忘记了一个非常重要的事实:流程图菜单是基于其他流程图创建的,因为每个流程图都是作为图像呈现的,以便显示缩略图菜单按钮。这就是我对性能影响的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-12 10:43:33

解决这个问题有很多方法。首先,您必须从c‘’tor中删除初始化。

把它移到哪里?对于Window_onLoad事件,应用程序将首先加载,然后开始初始化流程图(使用新线程将避免UI冻结)。

或者,一旦用户从菜单中选择了所需的流程图,您将显示窗口并开始初始化内部流程图,显示一个很好的“加载.”动画时忙,并显示流程图一旦你做了。

我更喜欢第二种方法,在需要时将每个对象都包含进去。

编辑:,因为您必须根据流程图呈现大拇指,我将执行以下操作:将流程图移至加载的主窗口事件,并在不同的线程上插入每个流程图,同时繁忙地显示一个很好的“请等待.”动画。这样主应用程序窗口出现,用户看到应用程序正在加载,您的拇指将同时创建,因此加载时间将减少。一旦所有的拇指创建,隐藏动画。

票数 2
EN

Stack Overflow用户

发布于 2011-09-12 10:42:59

加载主窗口之前,不要实例化所有流程图类。

作为第一种方法,我会在需要时进行初始化。

如果这被证明是不受欢迎的,因为人们不喜欢等待,那么使用背景初始化,首先实例化最流行的或最近的流程图。这将是正确的大多数时间,所以用户将不必等待。

如果您需要有流程图的缩略图,那么为什么不保存流程图上次呈现时的缩略图并使用它呢?因此,当创建流程图时,首先保存一个缩略图。然后,当您填充列表时,将其从数据库/off磁盘中取出并呈现出来。

票数 0
EN

Stack Overflow用户

发布于 2011-09-12 12:30:41

还没人提过分析,但为什么just try (the last paragraph of) this不提呢

你很容易就会发现长期服用的主要原因。很有可能,这是一件相当微不足道的事情,你可以很容易地修复。

如果你想要更多的解释,look here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7386574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档