代码很简单,如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(Test);
t.Start();
Thread.Sleep(1000);
t.Abort();
}
private void Test()
{
Form f = new Form();
f.ShowDialog();
}
}编译后,打开debug下的exe文件,点击button1后,拖拽新弹出的窗体,但不要释放。
接下来就会报“正在关闭线程”的错误。
哪位高手帮忙给解决下,谢谢。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(Test);
t.Start();
Thread.Sleep(1000);
t.Abort();
}
private void Test()
{
Form f = new Form();
f.ShowDialog();
}
}编译后,打开debug下的exe文件,点击button1后,拖拽新弹出的窗体,但不要释放。
接下来就会报“正在关闭线程”的错误。
哪位高手帮忙给解决下,谢谢。
你可以改成,public partial class Form1 : Form
{
private Form f;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(Test);
t.Start();
Thread.Sleep(1000);
t.Abort();
}
private void Test()
{
f = new Form();
f.Show();
}
}
那为什么我在IDE中直接 F5 运行又不报错????!!!!
t.Start();
Thread.Sleep(1000);
t.Join();
t.Abort();
Form f;声明拉到外面试试
你这样每次拖都实例一个
{
private Form f;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(Test);
t.Start();
Thread.Sleep(1000);
t.Abort();
}
private void Test()
{
f = new Form();
f.Show();
}
}
没打算关主线程啊,只是想在主线程里吧子线程创建的窗口给关掉。不过还是谢谢关注。之前试了
private void Test()
{
f = new Form();
try
{
f.ShowDialog();
}
catch (ThreadAbortException)
{
f.Close();
}
}
也没什么效果,有没有什么方法把用户正在进行的操作给disable掉或者什么啊。