class Form1
{
private Thread myTestThread;
private Form form2;
private void ThreadFunc()
{
form2 = new Form();
form2.Show();
}
private void btnOK_Click(object sender, System.EventArgs e)
{
myTestThread = new Thread(new ThreadStart(ThreadFunc));
myTestThread.Start();
}
}
form1为启动窗体,如果form1中有一个按钮,点击后调用btnOK_Click,form2只会闪一下就消失了。因为子线程运行完窗体显示后就结束,所以只显示一下.
处理办法:使用代理来显示Form2
private void ThreadFunc()
{
_frm2 = new Frm2();
this.Invoke(new ThreadStart(showForm2));
}
private void showForm2()
{
_frm2.Show();
}