Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果在任务管理器中结束进程,GC是否仍会清理?_C#_Garbage Collection - Fatal编程技术网

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

C# 如果在任务管理器中结束进程,GC是否仍会清理?,c#,garbage-collection,C#,Garbage Collection,我想我最近在某个地方读到(可能已经打开了,但我找不到问题)在调试会话中,在VS中按stop只会终止进程,并且没有GC发生。但是,关闭应用程序窗口通常会按预期执行GC 这是正确的吗 另外,在任务管理器中终止(非调试)进程时会发生什么情况?GC是否仍在清理?如果终止该进程,操作系统将清理该进程的内存,但.NET运行时内不会发生GC,也不会运行终结器 编辑:(只有当您终止进程时,上述内容才是正确的,而不是在使用“结束任务”时) 如果您发送“结束任务”,那么它将向程序发送相应的WM_CLOSE wind

我想我最近在某个地方读到(可能已经打开了,但我找不到问题)在调试会话中,在VS中按stop只会终止进程,并且没有GC发生。但是,关闭应用程序窗口通常会按预期执行GC

这是正确的吗


另外,在任务管理器中终止(非调试)进程时会发生什么情况?GC是否仍在清理?

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

编辑:(只有当您终止进程时,上述内容才是正确的,而不是在使用“结束任务”时)

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

编辑:(另一个附录)

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