当我在任务管理器中结束一个进程时,(杀死它)
它会运行dispose或Finilize方法吗?
什么以本地资源结束?
操作系统会清理它们吗?
答案 0 :(得分:2)
Dispose / finalize / whatever - no。没有什么可以运行它们,因为操作系统首先停止或阻止进程的所有线程运行。链接到进程的所有OS本机资源 - 句柄。然后所有的记忆都被释放,这个过程就不复存在了。
它必须是这样的,以便所有用户进程,无论编码如何或他们正在做什么,都可以停止。操作系统不能与终结器等有关,否则用户进程可能变得不可阻挡。
答案 1 :(得分:1)
操作系统将负责清理所有内容。 Finalize方法不会运行。
你不能指望运行Finalize方法,因为如果你的程序陷入无限循环,操作系统将无法杀死它。
答案 2 :(得分:1)
使用任务管理器终止进程时,不会运行正常的终结例程。这个过程突然结束了。操作系统将回收本机资源和管理的资源。