Starting Windows XP is quite slow as well. Don't worry about that.

解决方案 »

  1.   

    "显示一个启动画面,显示启动的过程,这样用户便不会觉得等待的时间过长"
    这个建议可行,比如放个gif、Flash等给用户看,只要用户不感觉慢,就没问题
      

  2.   

    同意liulxmooo(娃娃) 的建议!
    顶,给分她~
      

  3.   

    如果楼主的初始化工作很多,又是必须的。
    那就要考虑变通初始化了。
    首先考虑你自己的算法和资源是否有浪费。
    还有是不是某些步骤浪费了很多意外消耗(比如初始一些数据,可是数据库响应很慢或者有问题。)以上优化工作后还是很慢,那就把具体耗时的工作放在初始线程里作。
    在FROM LOAD里只开辟内存资源,和启动初始线程。
    具体工作由线程来作。
    主线可以检测下进度,来显示出来。(最好的办法是显示个小进程动画,至少不会让用户以为死机了。)
      

  4.   

    重载ONLOAD函数。比直接在FORM_LOAD中要高效些。
      

  5.   

    就跟观看flash影片一下,放个加载画面让别人看。
      

  6.   

    曾有过这样的经历,没什么好的办法,
    只能尽量将初始化放在用它之前才初始化,而不是很多一起放在Form_load中
      

  7.   

    程序启动慢,是JIT的原因,不可避免。要加快程序启动速度,可以编译成native code。不过这会导致运行速度下降。另外一种办法,你可以使用splash window,就是程序一双击就弹出一幅图片,然后慢慢load,就像photo shop或者word那样。splash window很好做,只需要在Application(new Form1())之前先new一个无边框的form,然后show()就可以了,等主窗口on_load的时候把那个无边框form关掉就可以了。用splash window的关键在于show()了以后马上要refresh,否则splash window一直要等到主窗口显示了以后再完全显示出来,就起不到splash window的作用了。
      

  8.   

    个人观点:
      可以提前调 this.Show(),把窗体显示出来。
      我试了一下
      在Form_Load里写入以下代码:
      
      this.Show();
      for(int i=0;i<1000;i++)
      {
       System.Threading.Thread.Sleep(10);
      }
     
     如果把this.Show()注释掉,窗口的弹出就需要一定时间。其他的加载,最好如楼上说的开新线程了。
      

  9.   

    把代码放到from_active事件里,form show出来后,第一个就执行它
      

  10.   

    错了,不对,如果active,就会有焦点问题汗阿