好文鏈接
使用.NET建立的可執行程序 .exe,并沒有直接承載到進程當中,而是承載到應用程序域(AppDomain)當中。應用程序域是.NET引入的一個新概念,它比進程所占用的資源要少,可以被看作是一個輕量級的進程。
在一個進程中可以包含多個應用程序域,一個應用程序域可以裝載一個可執行程序(.exe)或者多個程序集(*.dll)。這樣可以使應用程序域之間實現深度隔離,即使進程中的某個應用程序域出現錯誤,也不會影響其他應用程序域的正常運作。
當一個程序集同時被多個應用程序域調用時,會出現兩種情況:
第一種情況:CLR分別為不同的應用程序域加載此程序集。
第二種情況:CLR把此程序集加載到所有的應用程序域之外,并實現程序集共享,此情況比較特殊,被稱作為Domain Neutral