2009-08-25 15 views
9

पृष्ठभूमि और अग्रभूमि धागे के बीच क्या अंतर है?सीएलआर में, पृष्ठभूमि और अग्रभूमि धागे के बीच क्या अंतर है?

+0

स्पष्टीकरण: सी # पृष्ठभूमि और अग्रभूमि धागे की कोई अवधारणा नहीं है। कुछ परिदृश्यों को एक थ्रेड के बारे में बताते हुए भेद एक सीएलआर/COM स्तर पर किया जाता है। – JaredPar

+5

सी # में जिराफ की अवधारणा नहीं है, लेकिन आप जिराफ नामक संपत्ति के साथ कक्षा बना सकते हैं। IsBackground ढांचे में एक वस्तु की एक संपत्ति है। याद रखें, सी # _ भाषा_ .NET ढांचा नहीं है। यह सिर्फ एक प्रोग्रामिंग भाषा है। –

उत्तर

20

MSDN से:

पृष्ठभूमि धागे एक अपवाद के साथ अग्रभूमि धागे के समान हैं: एक पृष्ठभूमि धागा चल कामयाब निष्पादन वातावरण नहीं रखता है।

+0

आपका मतलब है कि यह तोप एक मौजूदा प्रक्रिया को समाप्त करने से रोकती है ... – Guffa

+0

@Guffa: मुझे समझ में नहीं आता है। आप एमएसडीएन दस्तावेज की व्याख्या पर quibbling कर रहे हैं? – Amy

+0

क्या इसका निचला संदर्भ स्विचिंग प्राथमिकता भी नहीं है? –

15

this page देखें:

  • अग्रभूमि धागे समाप्त से वर्तमान आवेदन को रोकने के लिए की क्षमता है। सीएलआर सभी फोरग्राउंड धागे समाप्त होने तक एक आवेदन बंद नहीं करेगा (जो कहने के लिए, होस्टिंग ऐपडोमेन को अनलोड करें)।

  • पृष्ठभूमि धागे (कभी-कभी डिमन थ्रेड कहा जाता है) को सीएलआर द्वारा निष्पादन के व्यय पथ के रूप में देखा जाता है जिसे किसी भी समय अनदेखा किया जा सकता है (भले ही वे वर्तमान में काम की कुछ इकाई पर श्रम कर रहे हों)। इस प्रकार, यदि सभी अग्रभूमि धागे समाप्त हो गए हैं, तो एप्लिकेशन डोमेन अनलोड होने पर किसी भी और सभी पृष्ठभूमि धागे स्वचालित रूप से मारे जाते हैं।

+0

जब लोगों को पृष्ठभूमि धागे का उपयोग करना चाहिए ..... एक अच्छा उदाहरण दें। – Mou

4

डिफ़ॉल्ट रूप से, धागे अग्रभूमि धागे हैं, अर्थात अपने रूप में लंबे समय किसी भी उनमें से एक के रूप में चल रहा है के लिए आवेदन को जीवित रखने के। सी # बैकग्राउंड थ्रेड का भी समर्थन करता है, जो एप्लिकेशन को अपने आप पर जीवित नहीं रखता है - एक बार सभी अग्रभूमि धागे समाप्त होने के तुरंत बाद समाप्त हो जाते हैं।

0

यदि किसी भी अग्रभूमि या पृष्ठभूमि धागे को समाप्त कर दिया गया है, तो आवेदन तुरंत मर जाता है। आवेदन जीवनकाल के दौरान किसी भी समय अग्रभूमि से पृष्ठभूमि और इसके विपरीत धागे को बदलना संभव है। एडीडॉमेन का बेहतर समर्थन करने के लिए सीएलआर दो प्रकार के धागे बनाता है। सीएलआर फोरग्राउंड थ्रेड समाप्त होने पर चल रहे किसी भी पृष्ठभूमि थ्रेड को मजबूती से समाप्त कर देगा। प्रबंधित निष्पादन वातावरण में प्रवेश करने वाले मूल कोड द्वारा बनाए गए किसी भी थ्रेड को पृष्ठभूमि धागे के रूप में चिह्नित किया जाता है।

संबंधित मुद्दे