c# थ्रेड निकास कोड क्या है?




multithreading debugging (3)

मेरे साथ क्या हुआ कि मेरे समाधान में कई परियोजनाएं हैं I मेरा मतलब प्रोजेक्ट 1 डीबग करना था, हालांकि, प्रोजेक्ट 2 को डिफॉल्ट प्रोजेक्ट प्रोजेक्ट के रूप में सेट किया गया था। मैंने इसे ठीक किया है, प्रोजेक्ट पर राइट क्लिक करें और "स्टार्टअप प्रोजेक्ट के रूप में सेट करें" का चयन करें, फिर डीबगिंग चलाना ठीक है।

डिबगिंग करते समय आउटपुट विंडो में थ्रेड निकास कोड वास्तव में क्या है? यह मुझे क्या जानकारी देता है? क्या यह किसी भी तरह से उपयोगी है या सिर्फ एक आंतरिक सामान है जो मुझे परेशान नहीं करना चाहिए?

The thread 0x552c has exited with code 259 (0x103).
The thread 0x4440 has exited with code 0 (0x0).

क्या इसके महत्व के साथ संभावित निकास कोड की कुछ प्रकार की सूची हो सकती है?


वास्तव में इस विषय पर स्पष्ट रूप से बहुत अधिक स्पष्टीकरण नहीं प्रतीत होता है लेकिन बाहर निकलने वाले कोडों का उपयोग इस बात पर संकेत देने के लिए किया जाता है कि धागा कैसे निकलता है, 0 का मतलब यह है कि यह सुरक्षित रूप से बाहर निकलता है जबकि कुछ और इसका मतलब है अपेक्षित के रूप में बाहर नहीं निकला। लेकिन फिर इस निकास कोड को पूरी तरह से अनदेखा करने के लिए कोड में सेट किया जा सकता है।

अधिक जानकारी के लिए मुझे सबसे नज़दीकी लिंक मिल सकता है this

उपरोक्त लिंक से उद्धरण:

बाहर निकलने की विधि, आपके प्रक्रिया या थ्रेड से वापस आने वाले पूर्णांक को 0-255 (8 बिट) से मान होना चाहिए। एक शून्य मान सफलता को इंगित करता है, जबकि एक शून्य शून्य मान विफलता इंगित करता है। यद्यपि, आप किसी भी पूर्णांक मान को निकास कोड के रूप में वापस करने का प्रयास कर सकते हैं, केवल पूर्णांक का सबसे निचला बाइट निकास कोड के हिस्से के रूप में आपकी प्रक्रिया या धागे से वापस कर दिया जाता है। प्रक्रिया के बारे में विशेष जानकारी देने के लिए ऑपरेटिंग सिस्टम द्वारा उच्च ऑर्डर बाइट्स का उपयोग किया जाता है। निकास कोड बैच / खोल कार्यक्रमों में बहुत उपयोगी है जो सशर्त रूप से किसी अन्य की सफलता या विफलता के आधार पर अन्य कार्यक्रम निष्पादित करते हैं।

GetEXitCodeThread लिए प्रलेखन से

महत्वपूर्ण GetExitCodeThread फ़ंक्शन थ्रेड समाप्त होने के बाद ही एप्लिकेशन द्वारा परिभाषित एक वैध त्रुटि कोड देता है। इसलिए, किसी अनुप्रयोग को STILL_ACTIVE (25 9) को त्रुटि कोड के रूप में उपयोग नहीं करना चाहिए। यदि कोई थ्रेड STILL_ACTIVE (25 9) को एक त्रुटि कोड के रूप में लौटाता है , तो इस मान के लिए परीक्षण करने वाले अनुप्रयोगों का अर्थ यह हो सकता है कि थ्रेड अभी भी चल रहा है और थ्रेड समाप्त होने के बाद थ्रेड के पूरा होने के लिए परीक्षण करना जारी रखता है, जो कि रख सकता है एक अनंत पाश में आवेदन।

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


जैसा कि सईसे ने उल्लेख किया है, बाहर निकलें कोड 259 (0x103) का विशेष अर्थ है, इस मामले में डीबग की प्रक्रिया अभी भी चल रही है।

मैंने इसे वेब सेवाओं को डीबग करने के साथ बहुत कुछ देखा, क्योंकि थ्रेड प्रत्येक वेब सेवा कॉल को निष्पादित करने के बाद चल रहा है (क्योंकि यह अभी भी और कॉल के लिए सुन रहा है)।





exit-code