2012-02-20 4 views
13

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

मैं अपने सभी बच्चों के धागे को नाम देने का प्रयास करता हूं और यह थ्रेड स्थिति डीबग विंडो देखने पर प्रत्येक बच्चे धागा क्या कर रहा है इसका स्पष्ट विचार रखने के लिए डिबगिंग में उपयोगी होगा। (और यदि किसी का नाम नहीं है तो इसे ट्रैक करने और इसे नामित करने का संकेत होगा।)

+3

एक मूल डेल्फी ऐप में एक एकल धागा है, जब तक कि आप इसे आईडीई में नहीं चला रहे हैं (डीबगर उन्हें लॉन्च करता है)। अतिरिक्त धागे आईडीई और/या विंडोज़ से संबंधित हैं। –

+3

@ केन यह नवीनतम डेल्फी में सच नहीं है। –

+1

मैं इसे देखता हूं; मैं पहले नहीं था। :) धन्यवाद। –

उत्तर

14

एक्सई 2 में एक सादा वेनिला 32 बिट वीसीएल ऐप, 64 बिट विंडोज 7 पर चलने वाले 3 थ्रेड हैं। मुख्य धागा और दो अतिरिक्त। पर कॉल द्वारा दो अतिरिक्त धागे TApplication.CreateHandle में बनाए गए हैं। यदि आप उन्हें नाम देना चाहते हैं तो आप threads in the process का आकलन कर सकते हैं और NameThreadForDebugging पर कॉल कर सकते हैं।

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

+7

+1 _ मैं व्यक्तिगत रूप से उन लोगों को देखता हूं जिन्हें मैंने किसी और की ज़िम्मेदारी के रूप में नामित नहीं किया है! _ – NGLN

+6

हालांकि, जब आप अपना नाम नहीं देते हैं, तो वे जल्दी ही मक में खो जाते हैं। तो मेरा दूसरा नियम है जो बातचीत करता है; यदि यह मेरा है, तो मैं इसे बेहतर नाम देता हूं या यह मक में खो जाएगा। यदि डेल्फी डीबगर थ्रेड के बारे में भी संकेत दे सकता है, या डेल्फी इकाई नाम संदर्भ का भी उल्लेख कर सकता है जहां यह धागा पहली बार दिखाई देता है, तो यह मेरे लिए बड़ी मदद होगी। –

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

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