我有一个以下表单 Form3,它由另一个表单 Form1 打开,关闭时 Form1 会重新打开。
问题是当我关闭 Form3 DoSomething 在表单关闭后继续运行时。
我知道我可以将 DoSomething 变成一个线程并设置 IsBackground = true 但是还有另一种方法可以在表单关闭时停止所有进程。
此代码只是示例,用于说明。
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void DoSomething()
{
int i = 0;
while(true)
{
if (!this.IsDisposed)
{
Application.DoEvents();
i++;
Thread.Sleep(10);
label1.Text = i.ToString();
dataGridView1.Rows.Add();
}
}
}
private void button1_Click(object sender, EventArgs e)
{
DoSomething();
}
private void Form3_FormClosed(object sender, FormClosedEventArgs e)
{
this.Dispose();
Form1.Default.Show();
}
}