मेरे पास एक .NET क्लास लाइब्रेरी है जो एक द्वितीयक प्रक्रिया को स्पिन करती है जो तब तक चलती रहती है जब तक कि मैं ऑब्जेक्ट का निपटान नहीं करता।अपनी खुद की .NET प्रक्रिया की सभी बाल प्रक्रियाओं को ढूंढें/पता लगाएं कि क्या दी गई प्रक्रिया मेरे बच्चे हैं?
मेमोरी में प्रोग्रामिंग कार्यक्रम की कुछ घटनाओं के कारण, मैंने यह सुनिश्चित करने के लिए एकीकरण परीक्षण जोड़ने का निर्णय लिया है कि यदि मैं ऑब्जेक्ट को जीसी/फाइनलाइजेशन में समाप्त कर देता हूं, तो यह प्रक्रिया समाप्त हो जाती है।
हालांकि, प्रक्रिया Mercurial कमांड लाइन क्लाइंट है, और मेरा बिल्ड सर्वर पहले से ही अपने परिचालन के हिस्से के रूप में Mercurial चला रहा है, मैं उन स्थितियों की कल्पना करता हूं जहां Mercurial पहले से ही चल रहा है जब यह परीक्षण शुरू होता है, या यह शुरू हो गया है , और अभी भी चल रहा है, जब परीक्षण समाप्त होता है, बिल्ड सर्वर के संबंध में, और मेरा परीक्षण नहीं।
तो, मुझे यकीन है कि मर्क्युरियल ग्राहक मुझे लगता है (या नहीं) एक मैं शुरू कर दिया है, और न सिर्फ किसी भी ग्राहक वर्तमान में चल रहे बनाना चाहते हैं।
तो सवाल यह है:
- मैं यह कैसे पता कर सकते हैं अगर मर्क्युरियल ग्राहक मैं देख रहा हूँ मेरी प्रक्रिया के द्वारा शुरू किया गया था?
"देखकर", मैं Process.GetProcesses विधि का उपयोग कर देख रहा था, लेकिन यह एक आवश्यकता नहीं है।
यदि कोई अलग प्रश्न बेहतर है, "सभी मेरी अपनी प्रक्रिया की बाल प्रक्रियाओं को कैसे खोजें", यानी। उत्तर देने में आसान, वह भी पर्याप्त से अधिक है।
मुझे यह पृष्ठ मिला: How I can know the parent process ID of a process?, लेकिन ऐसा लगता है कि मुझे इसे प्रक्रिया का नाम देना है। अगर मैं इसे "एचजी" देता हूं, तो क्या वह प्रश्न उस मामले के लिए अस्पष्ट नहीं है जिसे मैं ढूंढ रहा हूं?
यह मेरे लिए खूबसूरती से काम करता था, हालांकि मैं
ManagementObject
और कोई खोजकर्ता का उपयोग करके एक आसान दृष्टिकोण के लिए गया था। मैं थोड़ी देर के लिए अपने subprocesses को मारने के साथ संघर्ष कर रहा था, धन्यवाद! – Darkhydroजीवन बचतकर्ता !!!!!! – mstrewe