JaredPar का जवाब अच्छा है, सिवाय इसके कि वह AppDomains के लिए raison d'etre को नोट नहीं करता है - जो कि आप केवल उसके AppDomain को अनलोड करके एक असेंबली UNLOAD कर सकते हैं। यदि आप एक लंबे समय से चलने वाली ओएस प्रक्रिया हैं, और आपको लोड करने की उम्मीद है और फिर बाद में जो भी कारण के लिए असेंबलियों को अनलोड करना है, तो आपको एक AppDomain की आवश्यकता है। यहां प्रोटोटाइपिक उदाहरण ASP.NET है, जो मांग पर ऐप कोड असेंबलियों को लोड करता है और फिर बाद में उन्हें अनलोड कर सकता है, जब ऐप अब सक्रिय रूप से उपयोग नहीं किए जा रहे हैं।
आपके द्वारा अनलोड करने की क्षमता के लिए भुगतान की जाने वाली लागत स्वतंत्रता है - आपको AppDomain सीमा पर संचार करने की आवश्यकता है, आप एक सरल विधि कॉल नहीं कर सकते। आपको AppDomain जीवनचक्र का प्रबंधन करने की आवश्यकता है। आदि।
यदि आपको केवल असेंबलियों को गतिशील रूप से लोड करने की आवश्यकता है और आपको नहीं लगता है कि आपको एक एकल प्रक्रिया के जीवन के दौरान उन्हें उतारने की आवश्यकता होगी, तो आपको संभवतः कई AppDomains चलाने की आवश्यकता नहीं है। यहां एक अच्छा उदाहरण एक समृद्ध ऐप हो सकता है जो प्लग-इन मॉडल का समर्थन करता है, जहां यह "आदि" निर्देशिका में प्लग-इन असेंबलियों को सूँघता है और उन्हें सभी को लोड करता है। हालांकि, अगर प्लग-इन प्लग-इन को लोड करने के लिए मॉडल कॉल करता है ... अच्छी तरह से।
आउटलाइनर परिदृश्य हैं। जैसे, मान लीजिए कि आप एक ही समय में एक असेंबली के 2 अलग-अलग संस्करणों को लोड करना चाहते हैं। यदि आप उन्हें AppDomains से अलग नहीं करते हैं, तो आप नुकसान में भाग सकते हैं। लेकिन यह काफी दुर्लभ होगा।
AppDomains के अस्तित्व को सही ठहराने वाला मुख्य परिदृश्य एक लंबी चलने वाली प्रक्रिया है जो असेंबली को अनलोड करने में सक्षम होना चाहिए।
जब आप किसी असेंबली को अनलोड करना चाहते हैं, तो बेशक, OS प्रक्रिया पर भरोसा कर सकते हैं। दूसरे शब्दों में, आपके पास 3 या 4 सहयोगी प्रक्रियाएं चल सकती हैं, प्रत्येक असेंबली के अपने सेट के साथ, और जब आप किसी असेंबली को अनलोड करना चाहते हैं, तो उस असेंबली को होस्ट करने वाली प्रक्रिया को बंद कर दें। लेकिन AppDomain ऐसा करने के लिए एक उच्च-परिपूर्ण तंत्र प्रदान करता है, जिसके लिए प्रोसेस स्टॉप / स्टार्ट या क्रॉस-प्रोसेस कॉम्स की आवश्यकता नहीं होती है, जो कि पहले से वर्णित क्रॉस-ऐपडोमेन कॉम्स से कहीं अधिक भारी है। मेरा मतलब है कि यह अभी भी रिमोट है लेकिन यह धीमी और अधिक संदर्भ स्विचिंग है।