Thursday 7 December 2017

सी # प्रक्रिया waitforexit काम नहीं कर रहा


इसलिए मैं इस मुद्दे से थोड़ी देर के लिए संघर्ष कर रहा हूं और इसे ठीक करने के कई अलग-अलग तरीकों की कोशिश कर रहा हूं, लेकिन नहीं कर सकता। मूल रूप से मेरे ऐप को किसी डिवाइस पर किसी एप्लिकेशन को लोड करने के लिए एक जावा फ़ाइल कहा जाता है। हालांकि इसे अपने मुद्रण को एक रिच टेक्स्ट बॉक्स में लोड हो रहा है, फिर मैं अगली फ़ाइल पर जाना चाहता हूं। मेरी समस्या यह है कि जब पहली फाइल लोड की जा रही है, तो दूसरी समस्याएं लोड करने की कोशिश करता है। मैंने बाहर निकलने की प्रतीक्षा की कोशिश की है लेकिन अगर मैं ऐसा करता हूं, तो आउटपुट डेटा अमीर टेक्स्ट बॉक्स में लिखा नहीं जाता है। किसी भी विचार से मैंने कई अलग-अलग स्थानों पर बाहर निकलने के लिए इंतजार करने की कोशिश की, लेकिन यह काम करने के लिए प्रतीत नहीं होता। नीचे दो विधियों को स्टैडआउट या त्रुटि को रिच टेक्स्ट फील्ड में लिखें। सभी विचारों का स्वागत है। Bascally मुझे बाहर निकलने की प्रक्रिया की आवश्यकता है, तो फिर मैं अगले फाइल को लोड करने के लिए forloop सोचा जारी रख सकते हैं। क्या आपको किसी भी तरह की त्रुटि संदेश मिल रहा है मुझे ऐसा लगता है कि आपके तर्क हैं- Xxx1212-XM - jar कमांड लाइन विकल्प के बाद एक स्थान गुम है। यह कमान को समझने में सक्षम नहीं होने के कारण इसे तुरंत बाहर निकलने का कारण हो सकता है। साथ ही, एम। बाककॉक के सुझाव के अनुसार, UI थ्रेड से loaddPB विधि को स्थानांतरित करें, और लोड करने वाले भाग को सैकॉरेयर में लपेट करना सुनिश्चित करें, इस तरह से केवल एक ही फाइल एक बार में लोड हो जाती है और यूआई उसको जारी रखता है जो इसकी आवश्यकता होती है करने के लिए। ndash SPFiredrake 9 फ़रवरी 12 15 बजे चेतावनी दी है कि यह कुछ हद तक quothackishquot है कि आप अभी भी UI थ्रेड को अवरुद्ध कर रहे हैं, लेकिन आप मैन्युअल संदेश कतार के माध्यम से घटनाओं को पंप कर रहे हैं यह सबसे अच्छा अभ्यास नहीं है, और अधिकांश डेवलपर्स इसके खिलाफ सुझाएंगे। सबसे अच्छा विकल्प लोडिंग कोड को एक अलग धागे में फेंकना है। ndash SPFiredrake फ़रवरी 9 12 पर 15: 54 एनईटी सिस्टम। डायग्नोस्टिक्स। प्रोसेस क्लास 8211 भाग 1 प्रक्रिया। वेटफॉरएक्स और अंधाधृत घटना isn8217t काम मुझे लगता है कि मैं यह मामला हो पाया था लेकिन यह मेरी गलती थी, संभवतः आपके लिए भी यही है इस मुद्दे को तलाशने और सुलझाने के दौरान मैंने जो कुछ पाया है, उस पर मैं जाउंगा। संक्षिप्त उत्तर: यदि आप मानक आउटपुट और मानक ईरोड को पुनः निर्देशित कर रहे हैं, तो सबसे अच्छा एसिंक्रोनस प्रक्रिया का उपयोग करें। BeginnErrorReadLine () और. BeginOutputReadLine () विधियां कॉल करने से पहले WaitForExit () और प्रक्रिया को hooking करके आउटपुट को कैप्चर करते हैं। ErrDataReceived और. OutputDataReceived events बैच मोड में पाठ फ़ाइलों की तुलना करने के लिए Common7IDE फ़ोल्डर में Visual Studio diffmerge. exe का उपयोग करते हुए मेरे साथ लंबे उत्तर प्रारंभ होता है। मैं एक निर्माण शुरू बैच प्रक्रिया में एक प्रतिगमन परीक्षण शुरू कर रहा हूँ मुझे एक उपकरण की ज़रूरत है जो दो फाइलों की तुलना करते समय एक टेक्स्ट फ़र्क फ़ाइल को थोप देता है (मर्ज परिणाम फ़ाइल नहीं)। WinMerge और Beyond तुलना मेरे निपटान में हैं, लेकिन वे कुछ भी प्रतीत नहीं होते हैं, मर्ज किए गए परिणाम (जो आमतौर पर मैं क्या चाहता हूं, लेकिन इस बार नहीं)। मेरे प्रतिगमन ढांचे को diffmerge. exe कहते हैं और बाद की समीक्षा के लिए परिणामी डीफफ फ़ाइल को संग्रहीत करते हैं। मैंने अपनी प्रोसेस्टस्टटाइन्फ़ो को कोडित किया है कि प्रक्रिया को समाप्त करने और प्रक्रिया समाप्त होने के लिए प्रतीक्षा करने के साथ। और प्रतीक्षा इंतजार इंतजार कर। यह मुझे एमएसडीएन पढ़ने और प्रक्रिया वर्ग के उपयोग में गहरी खोदने मिला। मुझे कुछ रोचक जानकारी मिल गई है, शायद स्पष्ट होनी चाहिए। सबसे पहले, मैंने पाया कि कभी-कभी अलग-अलग तर्कों के साथ अलग-थलग बच्चे प्रक्रिया चलती है, कभी-कभी यह नहीं था, इस मुद्दे को रहस्यमय बना दिया दूसरा, मैंने पाया कि यह ठीक काम करता है जब मैंने आउटपुट रीडियोड किया था I8217 तो, जाहिर है मैं कुछ खो गया था मुझे वास्तव में प्रोसेस एपीआई दस्तावेज़ों को पढ़ने की जरूरत है, और इस प्रकार मुझे इस सोने का डला मिला: MSDN Article यदि मेरा स्टडीओट या स्टड एरर बफर भरता नहीं है तो मेरा कोड नमूना काम करेगा। हालांकि, जो मैं देख रहा था वह स्टड आउट बफर भरना था, बाल प्रक्रिया को अगले स्टैडऑप्टएसटीईआरर लिखें पर अवरुद्ध किया गया था, माता-पिता प्रक्रिया STDOutStdError बफर से पढ़ने से पहले बाल प्रक्रिया पर असीम प्रतीक्षा कर रहा था। मेरे लिए ऐसा प्रतीत होता है कि WaitForExit विधि और बाहरी घटना टूटने से बचने वाली बाल प्रक्रिया को नहीं पकड़ रही है, हालांकि यह मेरा कोड था जो टूट गया था। मैंने कोड को अतुल्यकालिक विधियों का उपयोग करने के लिए संशोधित किया और अचानक मेरी समस्याएं दूर चली गईं। कोई और अवरुद्ध नहीं, सब कुछ अपेक्षित के रूप में काम किया मैंने स्ट्रिंगब्यूल्डर को घटनाओं में प्राप्त आंकड़ों को पकड़ने के लिए बफ़र के रूप में इस्तेमाल किया। भाग 2 में, मैं अपनी विशिष्ट ज़रूरतों के आसपास प्रोसेस स्टडऑप्टएस्ड्रूट रीडलाइन कार्यान्वयन के साथ एक समस्या में चला जाता हूं, मैं उस मुद्दे पर कैसे हल करता हूं?

No comments:

Post a Comment