AppDomain、Assembly、Process和Thread之间的区别是什么?
AppDomain是进程内的隔离单元。可以在运行时创建、加载代码和卸载。它是一个隔离边界,旨在使.NET应用程序更加可靠。
程序集包含一个或多个模块,这些模块包含编译好的代码块。通常情况下,您会将程序集视为.EXE或.DLL文件。
进程是一个正在执行的应用程序(非常简化)。
线程是一个执行上下文。操作系统在线程中执行代码。操作系统在线程之间切换,允许每个线程依次执行,从而给人一种多个应用程序同时运行的印象。
将所有内容(非常简化)放在一起...
程序被执行。操作系统创建了一个进程,在其单个线程中开始加载要执行的代码。在.NET应用程序中,CLR创建了一个单独的AppDomain。应用程序的执行程序集(.EXE)被加载到此AppDomain中并开始执行。应用程序可以生成新进程,创建AppDomains,将其他程序集加载到这些域中,然后创建新线程以在任何这些AppDomains中执行代码。