int tempvl1 = 0;
        public void enforce()
        {
            imitatedal im = new imitatedal();           
            string qid = "201101________%";
            tempvl1 = im.ImitateExam(qid);
        }
        private void lkl_strat_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (value1 == 2000)
            {
                imitatedal im = new imitatedal();
                Thread th = new Thread(new ThreadStart(enforce));
                th.Start();
                ks_js.Enabled = true;
                ks_js.Interval = 1000;
                ks_js.Start();
            }
            else
            {
                mnst ms = new mnst(value1);
                ms.Show();
                this.Dispose();
            }
        }
        int js = 15;
        private void ks_js_Tick(object sender, EventArgs e)
        {
            if (js > 0)
                js--;
            if (js == 1)
            {
                if (tempvl1 != 0)
                {
                    Application.DoEvents();
                    imitate ims = new imitate(tempvl1, txb_zkz.Text, txb_xm.Text, showra, 0);
                    ims.ShowDialog();//这里打开就不显示了
                    this.Dispose();
                }
            }
            lkl_strat.ForeColor = Color.Red;
            lkl_strat.Text = "请等待,正在随机组卷";
            lbl_dlxxshow.ForeColor = Color.Red;
            lbl_dlxxshow.Font = new Font(lbl_dlxxshow.Font.Name, 11);
            lbl_dlxxshow.Text = "系统正在初始化,还有:"+js.ToString()+"秒!";
        }执行多线程,程序安装后不显示新窗口了。但在VS里面测试正常,可以弹出新窗口并关闭旧窗体。生成安装包后安装不知道为什么就不行了。气死老夫了!!

解决方案 »

  1.   

    把你的 ims.ShowDialog() 改成如下代碼試試。Action func = () =>
    {
        ims.ShowDialog();
    };
    if (ims.InvokeRequired)
    {
        ims.Invoke(func);
    }
    else
    {
        func();
    }
      

  2.   

    使用泛型 类型“System.Action<T>”需要“1”个类型实参
      

  3.   

     this.Dispose();
    改成this.Close();
      

  4.   


    应该不会的啊,Dispose()是销毁  调用就会结束程序LZ你的功能没什么问题  问题就在Dispose()上
      

  5.   

    我发现timer控件和线程一起使用会出现这个问题。
    同胞们还有什么方法和思路吗?
      

  6.   

    我在补充一下问题
    大家遇到过没有
    就是在vs中测试正常。
    但是生成软件安装部署后就不正常了。
    功能是当时间到后就执行打开新窗口。
    但安装后打开新窗口快到0(我用timer控件做了一个倒计时)做了一个整个窗口就不见了。
    有经验的出来说说。在北京的朋友可以请客吃饭。我在北京海淀。
      

  7.   

    LZ你先试试
    打开项目属性,在“Debug”一项里,把“Enable the Visual Studio hosting process”前的钩去掉。这个方法不是好办法。
      

  8.   

    还有可能就是
    terminal services这个服务的问题
    关于terminal services这个服务是这样介绍的
    允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。这是远程桌面(包括管理员的远程桌面)、快速用户切换、远程协助和终端服务器的基础结构
      

  9.   

    不行!!
    我把“timer控件”去掉了,还是有问题。可以断定是线程的问题。
    我对线程使用有点不熟!!大家指点一下!
    Thread th;
            private void mn_Load(object sender, EventArgs e)
            {
                if (value1 == 2000)
                {
                    imitatedal im = new imitatedal();                th = new Thread(new ThreadStart(enforce));
                    th.Start(); 
                    value1 = 256;
                }
               
            }        int tempvl1 = 0;
            public void enforce()
            {
                imitatedal im = new imitatedal();         
                string qid = "201101________%";
                tempvl1 = im.ImitateExam(qid);
                //Thread.Sleep(0);
            }
            private void lkl_strat_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
            {
                if (value1 == 256)
                {
                    if (tempvl1 != 0)
                    {
                        th.Abort();
                        Application.DoEvents();
                        imitate ims = new imitate(tempvl1, txb_zkz.Text, txb_xm.Text, showra, 0);
                        ims.ShowDialog();
                        this.Dispose();
                    }
                    else
                    {
                        MessageBox.Show("请等待并仔细阅读考试说明!");
                    }
                }
                else//这里运行没有问题!跟这里没有关系
                {
                    mnst ms = new mnst(value1, txb_zkz.Text, txb_xm.Text, showra, 0);
                    ms.Show();
                    this.Dispose();//这里运行没有问题!跟这里没有关系
                }
            }
          我在补充一下问题
    大家遇到过没有
    就是在vs中测试正常。
    但是生成软件安装部署后就不正常了。
    功能是当时间到后就执行打开新窗口。
    但安装后打开新窗口快到0(我用timer控件做了一个倒计时)做了一个整个窗口就不见了。
    有经验的出来说说,在北京的朋友可以请客吃饭。我在北京海淀。
      

  10.   

    但安装后打开新窗口快到0(我用timer控件做了一个倒计时)整个窗口就不见了。//上面说错了