CLR via C# 讀書筆記 6-1 AppDomain(應用程序域)
每一個托管程序啟動的時候都會至少啟動一個默認生成一個AppDomain
AppDomain提供了隔離的功能
1)一個應用程序域不能直接訪問其他應用程序域中的對象
2)應用程序域可以被卸載, 你無法卸載一個已經加載的程序域,不過你可以選擇卸載一個應用程序域
3)應用程序域可以擁有獨立的權限
4)應用程序域可以擁有獨立的配置(app.config 什么的....)
一般來說,如果兩個應用程序域加載了同樣的dll(例如System.dll) 那么這個被加載的dll需要2倍的內存并同時存在于這兩個應用程序域.
有些Assembly是應用程序域中立的(例如MSCorLib.dll) ,這些dll在被多個應用程序域加載的時候 依然只有一份.(防止浪費內存)
PS:個人覺得 如果需要加載不信任的第三方dll(例如這個dll里面可能危險代碼) 一般都會獨立給他一個AppDomain和更小的權限
浙公網安備 33010602011771號