एक AppDomain (एप्लिकेशन डोमेन), एक अलग वातावरण है जहां अनुप्रयोग निष्पादित होते हैं।
वे प्रबंधित कोड को क्रियान्वित करने के लिए अलगाव, उतराई, और सुरक्षा सीमाओं प्रदान करने में मदद।
प्रक्रिया को कम करने वाले कार्यों को अलग करने के लिए एप्लिकेशन डोमेन का उपयोग करें। यदि ऐपडोमेन की स्थिति कार्य निष्पादित करने योग्य स्थिति अस्थिर हो जाती है, तो ऐपडोमेन को प्रक्रिया को प्रभावित करने के बिना अनलोड किया जा सकता है। यह महत्वपूर्ण है जब प्रक्रिया को लंबे समय तक पुनरारंभ किए बिना लंबी अवधि के लिए चलाना आवश्यक है। आप पर उन डोमेन को एप्लिकेशन डोमेन का भी उपयोग कर सकते हैं जो डेटा साझा नहीं करना चाहिए।
यदि कोई असेंबली डिफ़ॉल्ट अनुप्रयोग डोमेन में लोड की जाती है, तो प्रक्रिया चल रही है, तो स्मृति से अनलोड नहीं किया जा सकता है। हालांकि, यदि आप पर दूसरा एप्लिकेशन डोमेन खोलें और असेंबली निष्पादित करें, तो असेंबली अनलोड हो जाती है जब एप्लिकेशन डोमेन अनलोड हो जाता है। का उपयोग इस तकनीक को लंबे समय से चलने वाली प्रक्रियाओं के सेट को कम करने के लिए करें जो कभी-कभी बड़े डीएलएल का उपयोग करते हैं।
एकाधिक एप्लिकेशन डोमेन को एक ही प्रक्रिया में चला सकते हैं; हालांकि, एप्लिकेशन डोमेन और थ्रेड के बीच एक-से-एक सहसंबंध नहीं है। कई धागे एक भी आवेदन डोमेन की हो सकती है, और जब एक दिया धागा किसी भी समय पर, एक भी आवेदन डोमेन के लिए ही सीमित नहीं है, एक धागा एक भी आवेदन डोमेन निष्पादित करता है।
अतः प्रश्न है कि ब्याज की हो सकती है:
मैं AppDomains के क्षेत्र में एक विशेषज्ञ होने का दावा नहीं होगा, लेकिन मुझे पूरा यकीन है कि एक COM ऑब्जेक्ट लीकिंग मेमोरी (यानी अप्रबंधित स्मृति) आपके द्वारा मुक्त नहीं होगी AppDomain nloading।शायद इस से अधिक परिचित कोई टिप्पणी कर सकता है।
ब्रायन के रूप में बताया, "... .नेट फ्रेमवर्क संस्करण में 2.0 डोमेन अनलोड करने के लिए गारंटी है नहीं, क्योंकि यह संभव धागे को क्रियान्वित करने को समाप्त करने का नहीं हो सकता है।"
स्रोत
2009-08-10 05:32:18
+1। मेरी स्वीकृति से काफी बेहतर है। :) –