C#关闭按钮 做了哪些事

fly_cc 2009-01-19 11:50:12
网上下了个屏幕键盘的代码,发现再点击窗口关闭按钮时,程序会很卡,但在自定义按钮事件里调用close()函数,又能很顺利的关闭程序。是不是在窗口关闭按钮事件里不是直接调用Close,还做了其他的事情,导致程序变卡
...全文
354 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
homejiji 2009-01-30
  • 打赏
  • 举报
回复
关注
wangerpang 2009-01-28
  • 打赏
  • 举报
回复
默认有啥,就有啥.

你可以重载这个方法.
walkingmu 2009-01-25
  • 打赏
  • 举报
回复
既然是屏幕键盘,一般有两种做法
一种是HOOK,在启动程序的时候要HOOK,在退出的时候要UNHOOK,楼主调用close,UNHOOK这段就被跳过去啦。
这样对系统是不利的。简单的SSDT hook系统还不至于蓝屏,要是内核级的就会内存泄漏甚至BSOD啦。

还有一种我记得是类似输入法的做法,不过这种方法我不是很熟悉。大概就是有一个线程注入到了被输入窗体。所以也会有一个销毁的过程。

由于本人内核方面不是很熟,以上信息仅供参考
天府荣城 2009-01-24
  • 打赏
  • 举报
回复
应该在窗体的closed事件里面
写关闭程序的代码
koukoujiayi 2009-01-24
  • 打赏
  • 举报
回复
不大同意楼上的观点!!
看看.net的垃圾回收机制,
什么时候垃圾回收是不确定的,在大多数情况下不进行垃圾回收,
有可能够触发垃圾回收的条件:
1.系统空闲
2.内存开销高度紧张
fly_cc 2009-01-24
  • 打赏
  • 举报
回复
关闭前通常会做些收尾工作,如释放非托管资源等等,根据具体程序情况不同了,直接调用close()当然快了,很多必要的收尾工作就丢失了

那要怎么让关闭按钮,直接去调用close()呢,不然程序太卡了
HDNGO 2009-01-20
  • 打赏
  • 举报
回复
没准在记录些什么东西。。。
飞天鹰 2009-01-20
  • 打赏
  • 举报
回复
资源的释放,连接的释放等等
nevana 2009-01-20
  • 打赏
  • 举报
回复
关闭前通常会做些收尾工作,如释放非托管资源等等,根据具体程序情况不同了,直接调用close()当然快了,很多必要的收尾工作就丢失了
king19840811 2009-01-20
  • 打赏
  • 举报
回复
closing事件里面有代码吧
llsen 2009-01-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nevana 的回复:]
关闭前通常会做些收尾工作,如释放非托管资源等等,根据具体程序情况不同了,直接调用close()当然快了,很多必要的收尾工作就丢失了
[/Quote]

this.close();
this.diagnose();
huangyuancao 2009-01-20
  • 打赏
  • 举报
回复
释放资源
wuyq11 2009-01-20
  • 打赏
  • 举报
回复
释放资源,垃圾回收
xmaiC 2009-01-19
  • 打赏
  • 举报
回复
搬个凳子来坐看楼下的

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧