1.Form2 打开后马上就关闭了???为什么??
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Thread tr;
private void button1_Click(object sender, EventArgs e)
{
tr = new Thread(new ThreadStart(Do));
tr.IsBackground = true;
tr.Start();
}
private void Do()
{
Form2 f = new Form2();
f.Show();
}
}
2.MessageBox 不能到最前面来。。被Form2窗体挡住了...??为什么呀??
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Thread tr;
private void button1_Click(object sender, EventArgs e)
{
tr = new Thread(new ThreadStart(Do));
tr.IsBackground = true;
tr.Start();
Thread.Sleep(2000);
MessageBox.Show("晕!!!");
}
private void Do()
{
Form2 f = new Form2(); f.ShowDialog();
}
}
这么乱的代码,神人也不看,不过可以告诉你的是,对于线程里的代码,一写要加try catch,不然出异常软件就会自动退出。
现在不乱了吧
@KeVinDurant: 有没用办法解决这个问题??
@KeVinDurant:
1:窗体的实例不应该在线程里被创建,要在线程里写代码,用Invoke调用主线程去实例化窗体。
2:改正1的代码你就都正确了。
不要在工作线程去show窗体或者访问,修改控件
因为是查询的时候开多一个线程去加载一个正在查询的Form,(查询结束关闭那个线程),但是抛出异常后想MessageBox出异常信息。。这个时候会挡着!!请问怎么解决呀??