解决方案 »

  1.   

    设计根本不合理。
    Invoke的本质是保持代码在UI线程被执行。
    你的SplashForm和Form1的初始化供用一个线程,你必须时刻牢记这一点。(操作UI的代码不是同步的会导致程序崩溃或者死锁,这个你应该知道)
    显然,你用闪屏的目的就是在Form1构造函数执行的过程中给用户提示
    那么如果Form1的构造函数悬挂了,你的闪屏也会失去响应。
    因此你应该将Form1的构造函数中的耗时的,和界面无关的初始化代码放入工作线程,而不是把Application.Run放入。