关于C# Windows窗体应用不推荐使用Application.Exit()

关于C# Windows窗体应用不推荐使用Application.Exit()

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("确定要关闭吗","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
            if (result==DialogResult.Yes)
            {
                Application.Exit();
            }
            else
            {
                e.Cancel = true;
            }
        }

使用Application.Exit()代码实现关闭程序,需要执行两次才能关闭。第一次选择是,只是终止了它的循环,第二次可以任意选择按钮都可以关闭

代码解决方案:需要人工干预,需要多一些语句,所以不是很推荐

public bool flag=true;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (flag)
            {
                DialogResult result = MessageBox.Show("确定要关闭吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (result == DialogResult.Yes)
                {
                    flag = false;
                    Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }

我个人推荐使用Application.ExitThread();来关闭程序,只在原来的基础上多了一个Thread,也是很容易记住的,也没有那么复杂。

新手一个,解释的不好勿喷