【C#】WinForm窗体退出的方法

【前言】
机房重构中,很多功能的实现都不止一种方法,多种多样,对于退出的方法研究了一下,还真是不少,自己就是用了,却没有太多的了解,今天就一起来学习一下吧。
【介绍】
(1)this.Close();
只是关闭当前窗口,若不是主窗体,无法退出程序;若有托管线程(非主线程),也无法完全退出;
此方法可以调用dispose()方法,所以它会自动释放内存,有两种情况例外
①该窗体是多文档应用程序(MDI)的一部分并且此窗体不可见。
②窗体是"模态"窗体
(2)Application.Exit();
强制所有消息终止,退出所有窗体,若有托管线程(非主线程),无法完全退出
(3)Application.ExitThread();
强制终止调用线程上的所有消息,同样面临其他线程无法正确退出的问题
(4)System.Envionment.Exit(0);
一种最彻底的退出方式,强制退出,无残留。
【拓展】
dispose()方法
dispose()方法的作用可以释放组件的所有资源,.Net提供的垃圾自动回收机制,可以帮我们自动回收垃圾对象,可是垃圾回收器只能回收“托管资源”,而不能回收“非托管资源”,而且垃圾回收器也不是立即回收,每隔一段时间才回收一次,每次回收的时候用户也不清楚
所以dispose()方法是为了弥补这种机制所产生的方法,调用dispose(true)方法可以释放 “托管”和“非托管”资源,而且它可以不必等垃圾回收器来自动释放,调用此方法可以显示释放资源。
托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象。
非托管资源:不受CLR管理的对象,windows内核对象,如文件,数据库连接,套接字,com对象等

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值