Useshellexecute waitforexit इंतजार नहीं करता है
मैं अपने VS2008 सेटअप प्रोजेक्ट (एमएसआई इंस्टॉलर) में कस्टम एक्शन जोड़ रहा हूं। मैं डेटाबेस बनाने के लिए एक बैच फ़ाइल बुला रहा हूँ और उन फ़ाइलों को बाद में हटाना चाहता हूं। मेरे पास WaitForExit () है लेकिन यह इंतजार नहीं करेगा। क्यों startInfo. UseShellExecute के साथ कोई अंतर नहीं है बैच किसी भी समस्या के बिना निष्पादित किया गया था क्योंकि यह यूजर इनपुट की आवश्यकता है और I प्रश्न के लिए इनपुट y और n लेकिन मेरे इनपुट से पहले उस एक्शन को हटा दिया गया था और मेरे पास बैच फ़ाइल के अंत में एक विराम है मैं जा रहा बैच फ़ाइल की प्रक्रिया देख सकता हूँ संपादित करें: मैंने 10 बार से अधिक परीक्षण किया, यह काम नहीं किया। दोपहर के भोजन के बाद, मैंने एक और इंतजार करेंएफ़एक्सएक्सिट और हेटेक्सित चेक के साथ थोड़ी देर लूप रखा। यह लूप के अंदर सो जाएगा मैंने पाया यह काम किया फिर मैंने उन अतिरिक्त कोड को हटा दिया, वापस एक WaitForExit। यह अब काम लगता है 29 सितंबर 17 को पूछा गया: 18 मुझे एक ऐसी स्थिति है जहां मैं एक फ़ाइल निष्पादित करना चाहता हूं, और फिर निष्पादन योग्य फ़ाइल को हटाते समय निष्पादन किया जाता है। मैं फ़ाइल को निष्पादित करने के लिए System. Diagnostics. Process. Start () का उपयोग करता हूं, और प्रक्रिया को पूरा करने के लिए प्रतीक्षा करने के लिए WaitForExit () का उपयोग करें। मैं तो फ़ाइल का उपयोग करें। निष्पादन योग्य फ़ाइल को हटाने के लिए हटाएं (फ़ाइल नाम) समस्या यह है कि कभी-कभी, फ़ाइल। डिलीट निम्न त्रुटि से असफल हो जायेगी: यह मुझे विश्वास करने की ओर जाता है कि, किसी भी तरह, प्रक्रिया अब भी ज़िंदा है और निष्पादन योग्य फ़ाइल लॉक कर रही है। WaitForExit () कॉल रिटर्न मुझे नेट पर अन्य धागे मिल चुके हैं जो एक ही व्यवहार का वर्णन करते हैं, लेकिन WaitForExit () के बाद नींद (एन) रखने के सुझावों के अलावा, मुझे समस्या के उचित स्पष्टीकरण या समाधान के साथ निष्कर्ष नहीं मिला है। उदाहरण: यहां एक नमूना कार्यक्रम है जो मेरे लिए समस्या को पुन: उत्पन्न करता है मैंने दोनों विंडोज एक्सपी और विंडोज 7 पर परीक्षण किया है, और वे दोनों अंततः एक ही त्रुटि के साथ कुछ बिंदु पर विफल रहे हैं। यह भी ध्यान रखें कि ss. exe निष्पादन योग्य एक सादा सरल quot हैहेलो विश्वस्वाट कंसोल अनुप्रयोग है। और उत्पादन आमतौर पर कुछ दिखता है (दुर्घटना होने से पहले पुनरावृत्तियों की भिन्न मात्रा के साथ): ऐसा क्यों होता है पर कोई भी विचार, और यदि इस के लिए कुछ तय है (कोड में सोएं डाल करने के अलावा) शुक्रवार, जनवरी 08, 2018 3 : 40 बजे इसका कारण यह है कि हालांकि प्रक्रिया पूरी हो चुकी है, हालांकि इसे नष्ट करने के लिए OS के लिए कुछ मिलीसेकेंड लग सकते हैं। इसके बाद एक बहु-कार्य ओएस, एक ही समय में हर किसी की सेवा करने की कोशिश कर रहा है। दुर्भाग्य से, यह जानने का कोई तरीका नहीं है कि फाइल अब लॉक क्यों नहीं है (विशेष रूप से) जब आप WaitForExit, आप प्रक्रिया ऑब्जेक्ट पर एक लॉक ऑब्जेक्ट बना रहे हैं। लॉक जारी होने तक प्रक्रिया ऑब्जेक्ट को नष्ट नहीं किया जा सकता है और आप कुछ ऐसा नहीं कर सकते हैं जो मौजूद नहीं है (चिकन और अंडा प्रकार का मुद्दा) तो केवल एक उचित बात आप कर सकते हैं कोशिश कर रहा है, कुछ की तरह: शमूएल स्टानोएवेविक द्वारा जवाब के रूप में चिह्नित शुक्रवार, 08 जनवरी, 2018 4:20 PM Tergiver द्वारा संपादित शुक्रवार, 08 जनवरी, 2018 4:20 बुल बदल गया है, अनंत लूप शुक्रवार, शुक्रवार, 08 जनवरी 2018 4:15 PM माइक्रोसॉफ्ट एमएसडीएन वेब साइट की आपकी राय को समझने के लिए एक ऑनलाइन सर्वेक्षण आयोजित कर रहा है। यदि आप भाग लेना चुनते हैं, तो ऑनलाइन सर्वेक्षण आपको प्रस्तुत किया जाएगा जब आप एमएसडीएन वेब साइट छोड़ देंगे। क्या आप भागीदारी करना चाहेंगे
Comments
Post a Comment