当前位置:  开发笔记 > 编程语言 > 正文

如果您在任务管理器中结束进程,GC是否仍然清理?

如何解决《如果您在任务管理器中结束进程,GC是否仍然清理?》经验,为你挑选了1个好方法。

我想我最近读过某个地方(甚至可能已经在SO上但是我找不到问题),在调试会话中,在VS中按停止只会杀死进程并且不会发生GC.但是,关闭应用程序窗口通常会按预期执行GC.

它是否正确?

此外,在任务管理器中杀死(非调试)进程时会发生什么 - GC是否仍在清理?



1> Martin C...:

如果您终止进程,操作系统将清理进程的内存,但.NET运行时内不会发生GC,也不会运行终结器.

编辑:(以上只有在你杀死进程时才是正确的,而不是你使用"结束任务")

如果发送"结束任务",它将向程序发送相应的WM_CLOSE窗口消息,并且不会立即终止进程,并且.NET可以正常关闭.

编辑:(又一个附录)

如果你停止调试,它大致相当于TerminateProcess(),它将立即关闭进程.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有