首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

●加班,怎么让线程加载一个窗体?多谢◆◆◆◆

2012-01-02 
●●加班在线等,如何让线程加载一个窗体?谢谢◆◆◆◆因为一些需要,想在一个线程中打开另一个窗体,一直搞不定.pr

●●加班在线等,如何让线程加载一个窗体?谢谢◆◆◆◆
因为一些需要,想在一个线程中打开另一个窗体,一直搞不定.
                private   Form2   f;
                private   void   button1_Click(object   sender,   EventArgs   e)
                {
                        ........
                        Thread   th   =   new   Thread(new   ThreadStart(a));
                        th.Start();

                        .......

              }
                private   void   a()
                {
                                f   =   new   Form2();
                                f.Show();
                                f.s();   //f.s   是启动窗体2中的一个线程
                }

把其他功能都屏蔽掉了,就剩这几句,Form2是另外一个窗体.
我点击button时,form2只是闪了一下就没了,是不是线程运行完了窗体也销毁了呢?
但是f.s()启动的线程还在跑.

如果我把线程改成为
                private   void   a()
                {
                                f   =   new   Form2();
                                f.Show();
                                f.s();   //f.s   是启动窗体2中的一个线程
                                while(true)
                                {
                                      Thread.Sleep(100);
                                  }
                }
窗体2就能出来了,但是一直是系统忙碌的漏斗鼠标.

求教一下,此简单功能如何实现.
加班在线等一个答案!!
在此感谢了


[解决办法]
up
[解决办法]
在线程里,可以直接使用Application.Run(form)来打开一个窗体。

比如:

Form f=new Form();
Application.Run(f);

但这个用法仅在线程中。
[解决办法]
在主窗体里面用一个方法

Func1(){
f = new Form2();
f.Show();
}

线程里面 this.BeginInvoke这个方法
[解决办法]
up
楼上

热点排行