C#写的程序第一次打开太慢,求解决方案!--顶贴给分

m777 2009-06-08 11:52:57
使用ngen 来提升速度,也不行,还是很慢,一个窗体,第一次打开将近2秒,但是第二次打开只用了300多毫秒,差距不会这么大吧?
有什么好方法,请高手指点!
...全文
1020 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
glxmf 2011-01-10
  • 打赏
  • 举报
回复
我用C#编译一个空窗口启动都要一两秒钟。c#功能是很多,但看这速度实在令人寒心。
redleafe 2009-06-09
  • 打赏
  • 举报
回复
估计是Load里的代码过多。
walkghost 2009-06-09
  • 打赏
  • 举报
回复
在formload里尽量少写代码。网络连接初始化,数据库操作等不要在里面写。
如果你不得不写的话,你的程序就得像飞信似的,死慢死慢死慢的。
bluedodo 2009-06-09
  • 打赏
  • 举报
回复
你的启动界面是什么样的,是不是做了数据库的连接?
m777 2009-06-09
  • 打赏
  • 举报
回复
哎....头大呀!
m777 2009-06-09
  • 打赏
  • 举报
回复
哎!看来是一个无解的题呀!等微软来解决吧!结贴!
xuzhao1211 2009-06-09
  • 打赏
  • 举报
回复
有没有办法译成非托管代码
cppfaq 2009-06-08
  • 打赏
  • 举报
回复
2S和0.3S的差异,个人觉得还是楼主代码自身的特点。
比如:你的程序启动的时候需要去连接Oracle,但是oracle本身启动很慢,如果是OS刚登陆进去你就启动程序,那么很可能需要重试好几次才能建立连接。而二次启动的时候,所有的被依赖的系统都已经肯定处于就绪状态,自然会快。

所以建议楼主找出你系统启动的依赖条件,一一诊断。

.net fwk加载是需要时间,但是绝对没有这么慢。
teerhu 2009-06-08
  • 打赏
  • 举报
回复
这是.net托管代码本身的机制
SK_Aqi 2009-06-08
  • 打赏
  • 举报
回复
第一次启动就是这样
cc_net 2009-06-08
  • 打赏
  • 举报
回复
给用户一个启动界面,就可以浪费用户好几秒钟。

总比用户点了在那啥等好
xiedu414 2009-06-08
  • 打赏
  • 举报
回复
up
掌握未来2019 2009-06-08
  • 打赏
  • 举报
回复
线程+委托搞定
myh0305 2009-06-08
  • 打赏
  • 举报
回复
如果是你自己的程序中需要加载很多的东西的话, 那就用线程来解决吧
Fibona 2009-06-08
  • 打赏
  • 举报
回复
因为第一次打开时,CLR的第一次加载,及装载Assibly肯定会第二次慢,这是.net托管代码本身的机制
zhoudan3986226 2009-06-08
  • 打赏
  • 举报
回复
第一次还是比较慢的啊!要加载的东西太多
aimeast 2009-06-08
  • 打赏
  • 举报
回复
.net的程序都是这样的。特别是机器重启后,第一次启动.net程序,速度极慢。
第一次启动非托管程序也有这样的显现,只是不明显而已。
outou 2009-06-08
  • 打赏
  • 举报
回复
当你把程序关闭从新启动,打开窗口时,如果每次都一样,说明你在执行程序后,第一次打开窗口时加载了一些东西,所以第二次就不需要了,就会变快的。
jiangshaofen 2009-06-08
  • 打赏
  • 举报
回复
你的快慢参考了什么值?!
FlyBee 2009-06-08
  • 打赏
  • 举报
回复
帮顶,我也想知道
加载更多回复(42)

110,569

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧