看看这段代码:
static Thread t1;
static ThreadStart ts1;
void my()
{
this.Hide();
Form2 frm2 = new From2();
frm2.Show();
}
private void button1_Click(object sender, EventArgs e)
{
ts1 = new ThreadStart(my);
t1 = new Thread(ts1);
t1.Start();
}
在my
函数中有一些代码隐藏了这个表单并打开了form2但是有一个问题。运行t1
并打开form2时,t1
已完成,因此form2也将关闭!
我该怎么做才能解决这个问题?
由于
答案 0 :(得分:2)
在UI线程上执行所有UI调用。总是。在UI线程上隐藏和打开表单。
答案 1 :(得分:0)
更改方法:
void my()
{
this.Invoke((MethodInvoker)delegate
{
this.Hide();
Form frm2 = new Form();
frm2.Show();
});
}