[多线程]关于启动界面Splash的奇怪问题

tiedollars   2009-9-20 15:14 楼主
大家好!

      我的开发平台是Visual Studio 2005 + WinCE 5.0,用C#开发程序。
      现在想实现一个启动界面的功能,就是程序启动后,显示一个窗体界面一段时间之后这个窗体自动关闭,然后再进入主窗体。
      我的思路是这样的:在主窗体的程序中加一个子线程来调出启动窗体Splash,等待3秒钟之后abort这个子线程,这样起到关闭启动窗体的目的。程序中有两个form: Splash、Form1,代码如下:

namespace Spalsh_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            // 新建子线程
            Thread th = new Thread(new ThreadStart(DoSplash));
            th.Start();
            Thread.Sleep(2000); // 等待2秒
            th.Abort();
            Thread.Sleep(1000); // 等待子线程释放资源
        }

        private void DoSplash()
        {
            // 这里新建一个Splash实例,调出这个窗体
            Splash sp = new Splash();
            sp.ShowDialog();
        }
    }
}

现在的问题是:
     这段代码在Windows平台运行的很好,但是一旦在WinCE下运行,就会出现这种现象:启动界面Splash关闭后,主窗体Form1也一闪而过,自动关闭,然后程序自动退出。
     小弟新手,这个问题我查了好长时间也不清楚问题出在哪里,请高手们指点一二。
     非常感谢!

回复评论 (2)

C#啊,没有用过。

但解决问题的方法是一样的,调试,看看主窗体为什么会退出?
点赞  2009-9-20 15:37
谢谢楼上!
我也非常纳闷,不知道为什么主窗体会自动退出,单步走也看不出来问题出在哪里。
点赞  2009-9-20 17:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复