首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows启动时优化WPF应用程序启动

如何在Windows启动时优化WPF应用程序启动
EN

Stack Overflow用户
提问于 2011-06-17 17:03:11
回答 4查看 1.6K关注 0票数 5

我实现了一个WPF应用程序,并将其注册为在windows启动时启动。我的应用程序是一个简单的登录应用程序,当用户登录时出现在图标tray.The的问题是,它需要大约30秒后显示自己的视窗启动。我已经尝试了Ngen,但没有很大的成功。我希望避免实现闪屏。我希望我的WPF应用程序在Windows启动后“立即”出现,类似于Windows Live Messenger所做的事情。我能做些什么来减少它的启动时间?除了原生编码之外,我还有其他选择吗?谢谢。

EN

回答 4

Stack Overflow用户

发布于 2011-06-17 19:58:35

当计算机空闲时,是否也需要30秒才能启动(即,如果您在计算机不忙于加载windows时双击启动它)?

在windows启动期间,计算机通常会忙于处理大量的东西,这可能会导致应用程序运行缓慢。那你就无能为力了。

但是,下面是一些改善WPF应用程序启动的一般提示:

  • 只实例化你实际需要的控件,向用户展示你的控件/窗口的复杂性。
  • 不要在控件的构造函数中执行任何耗时的操作&
    • 如果磁盘忙于其他工作(就像windows启动时通常一样),即使是像从本地磁盘读取文件这样的无害操作也会耗时。如果网络尚未完全初始化,
    • 网络服务调用可能会花费很长时间
    • 一种简单的解决方案是将繁重的工作卸载到BackgroundWorker或使用异步调用来执行I/O和网络requests

您还可以在app.config中设置一个设置,告诉运行时不要使用证书对程序集进行身份验证(此检查可能需要很长时间,特别是冷启动):

代码语言:javascript
复制
<configuration>
  <runtime>
    <generatePublisherEvidence enabled="false"/> 
  </runtime>
</configuration>

Application Startup Time上的MSDN站点上提供了一些更一般的技巧。

票数 2
EN

Stack Overflow用户

发布于 2011-06-17 20:50:41

也许this site会对你有所帮助。它列出了在Windows登录之前(如果它是一项服务)或在Windows登录之后启动应用程序的一些选项。它们涉及一些注册表攻击,您需要在卸载过程中撤消这些操作。

票数 1
EN

Stack Overflow用户

发布于 2011-06-17 20:54:39

我非常喜欢Performance Tips of the wpftutorial.net

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

https://stackoverflow.com/questions/6383568

复制
相关文章

相似问题

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