2012-09-13 6 views
47

मेरे सी # अनुप्रयोग को डीबग करते समय मैंने निम्नलिखित वाक्य की बड़ी मात्रा में घटनाओं को देखा है: "थ्रेड - कोड 0 (0x0) से बाहर निकला है।" एप्लिकेशन काम जारी है और कोई अपवाद कैच/अनचाहे नहीं है।धागा कोड 0 (0x0) के साथ बाहर निकला है, बिना किसी अपरिवर्तित अपवाद

एप्लिकेशन विंडोज 7 64 बिट पर चल रहा है और x86 प्लेटफ़ॉर्म के साथ डीबग किया गया है।

+1

क्या आप वाकई उन अपने सूत्र हैं? यदि हां, तो क्या आप उन्हें पूरा करने की उम्मीद नहीं करते हैं? – SLaks

उत्तर

63

यह सिर्फ डिबगिंग संदेश है। आप आउटपुट विंडो में दायाँ क्लिक करके इसे बंद कर सकते हैं और थ्रेड समाप्त संदेश को अनचेक कर सकते हैं।

http://msdn.microsoft.com/en-us/library/bs4c1wda.aspx

इसके अलावा अपने आवेदन से बाहर कार्यक्रम, आउटपुट खिड़की बारे में जानकारी प्रदर्शित कर सकते हैं:

  • मॉड्यूल डिबगर लोड या अनलोड किया है।

  • फेंकने वाले अपवाद।

  • बाहर निकलने की प्रक्रिया।

  • बाहर निकलने वाले थ्रेड।

2

यदि आपका एप्लिकेशन सीधे या अप्रत्यक्ष रूप से धागे का उपयोग करता है (यानी तृतीय पक्ष लाइब्रेरी में दृश्य के पीछे) यह पूरी तरह से सामान्य है कि थ्रेड समाप्त होने के बाद समाप्त हो जाए ... जो मूल रूप से आप वर्णन करते हैं ... डीबगर इस संदेश को दिखाता है ... यदि आप इसे नहीं चाहते हैं तो आप इस संदेश को प्रदर्शित न करने के लिए डीबगर को कॉन्फ़िगर कर सकते हैं ...

यदि उपर्युक्त मदद नहीं करता है तो कृपया अधिक जानकारी प्रदान करें क्योंकि मुझे यकीन नहीं है कि वास्तव में क्या है समस्या आप सामना कर रहे हैं ...

5

ठीक है, एक आवेदन में समानांतर में चलने वाले बहुत सारे धागे हो सकते हैं। कुछ आपके द्वारा चलाए जाते हैं, कोडर, कुछ ढांचे वर्गों द्वारा चलाए जाते हैं (espacially अगर आप एक जीयूआई वातावरण में हैं)।

जब कोई धागा अपना कार्य पूरा कर लेता है, तो यह निकलता है और अस्तित्व में रहता है। यानी इसमें कुछ भी खतरनाक नहीं है और आपको परवाह नहीं करनी चाहिए।

+0

जिन सूत्रों के बारे में मैंने चर्चा की है वे मेरे नहीं हैं (या मेरे आवेदन से संबंधित नहीं हैं)। हालांकि मेरे एप्लिकेशन को एक लिनक्स एईक्स सर्वर से कनेक्ट करने की आवश्यकता है जो बड़ी मात्रा में निष्क्रिय प्रक्रियाओं के साथ लौटता है। मुझे इस सर्वर के कामों के बारे में कोई स्पष्ट जानकारी नहीं है (और जो इसके कार्य हैं) लेकिन मुझे लगता है कि उपर्युक्त धागे सर्वर व्यवहार को प्रभावित कर सकते हैं। – Gionata

+0

ठीक है, शायद धागे वास्तव में आपके आवेदन को प्रभावित करते हैं, लेकिन आपको जो संदेश मिलता है वह आपको बताता है कि वे सफलतापूर्वक समाप्त हो जाते हैं। तो आप कोशिश कर सकते हैं और पाते हैं कि वे क्यों चल रहे हैं (डीबग मेनू => विंडोज => धागे), लेकिन यह सामान्य है कि वे समाप्त हो जाते हैं। – Kek

+0

वे सामान्य रूप से समाप्त होते हैं लेकिन लिनक्स सर्वर निष्क्रिय प्रक्रियाएं नेट फ्रेमवर्क थ्रेड का दुष्प्रभाव हो सकती हैं। हो सकता है कि मल्टीथ्रेडिंग कार्यान्वयन में एप्लिकेशन में विभिन्न प्रोग्रामिंग त्रुटियां हों। क्या यह संभव है? – Gionata

1

ढांचे जब आप एक फार्म बना सकते हैं और .Show() के रूप में, प्रत्येक विंडो आपके द्वारा बनाए गए, जैसे समर्थन करने के लिए धागे पैदा करता है। जब खिड़कियां बंद होती हैं, धागे समाप्त हो जाते हैं (यानी, वे बाहर निकलते हैं)।

यह सामान्य व्यवहार है। हालांकि, यदि एप्लिकेशन धागे बना रहा है, और इन धागे से संबंधित बहुत सारे थ्रेड निकास संदेश हैं (कोई भी संभवतः थ्रेड के नामों से बता सकता है, उन्हें ऐप में अलग-अलग नाम देकर), तो शायद यह समस्या का संकेत है एक प्रोग्राम लॉजिक त्रुटि के कारण ऐप को थ्रेड बनाने के साथ नहीं होना चाहिए।

मूल पोस्टर यह जानने के लिए एक दिलचस्प फॉलोअप होगा कि सर्वर क्रैश होने की समस्याओं के बारे में उसे क्या पता चला है। मुझे एहसास है कि इसके साथ इसका कोई संबंध नहीं होगा ... लेकिन पोस्ट की गई जानकारी से बताना मुश्किल है।

3

BlueM के स्वीकार किए जाते हैं जवाब पूरा करने के लिए, आप इसे यहां desactivate कर सकते हैं:

उपकरण> विकल्प> डिबगिंग> सामान्य आउटपुट सेटिंग्स> थ्रेड से बाहर निकलें संदेश: बंद

+0

ब्लूएम के स्वीकृत उत्तर में वास्तव में एक आसान समाधान है: _ "आप आउटपुट विंडो में राइट क्लिक करके इसे बंद कर सकते हैं और थ्रेड एंड मैसेज को अनचेक कर सकते हैं" _ –

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