.NET CLR卸载VS关机?(.Net CLR Unloading vs shutdown?)

2019-09-16 09:16发布

是什么原因导致finalize方法被称为?

2回答(4)对这个问题是:

  • The CLR is unloading an AppDomain当一个AppDomain卸载时,CLR认为没有在应用程序域是一个根,并且执行垃圾收集由所有后代。

  • The CLR is shutting down的CLR关闭时的处理正常终止(相对于通过任务管理器外部关闭,例如)。

我认为The CLR is unloading an AppDomain是当程序(例如控制台[EXE]为)被关闭(通过按程序的关闭/正常结束)

什么The CLR is shutting down继续上面的[EXE]节目类比:

  • 这是什么意思 ? 我怎样才能关机CLR ...?
  • [在IIS世界]意思IIS重置?

请,我可以有小的解释?

Answer 1:

在AppDomain比过程更细致的单元。 一个进程可以可以有多个应用程序域实例中,其中的每一个可以单独卸载。

在CLR关机是该处理终止。

在AppDomain卸载是单独的每个应用程序域。

(虽然我不会亲自保证,没有检查的文件,所有的终结等,在这两种情况下执行)

作为一个例子,我使用多个应用程序域实例在长时间运行的自我更新的窗口服务; 检测到新版本时,它拉下新的二进制文件,产生一个新的AppDomain,得到它运行,切换未来业务转移到新的AppDomain,并卸载旧的AppDomain(运行时操作已完成)。



文章来源: .Net CLR Unloading vs shutdown?