006——C#关闭窗口 添加FormClosing事件

(一)参考文献:C# 添加FormClosing事件

(二)在 项目名.Designer.cs中的InitializeComponent()添加:


this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing);

在这里插入图片描述在这里插入图片描述
(三)在 项目名.cs中添加:

        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("你确定要退出?数据可能会丢失!", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                e.Cancel = false;     //关闭窗体
            } 
            else
                e.Cancel = true;     //返回窗体
        }

在这里插入图片描述
C# 使用多线程,在关闭窗体时 怎么关闭窗体的所有线程,使程序退出。

this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
Thread_VIEW.Abort(); //关闭Thread_VIEW线程
Thread_SAVE.Abort(); //关闭Thread_SAVE线程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值