Thursday 21 December 2017

Enableraisingevents waitforexit


कैसे प्रतीक्षा है WaitForExit () इसका मतलब यह है कि विकल्प का कोई भी विकल्प प्रतीक्षा को तोड़ने के लिए कर सकता है अन्यथा मैं अपने धागे को एक अलग समारोह में चलाऊंगा और इसे वैश्विक चर से नियंत्रित कर दूंगा। कारण - एक सीएमडी.एक्सई धागा, एक कंसोल अनुप्रयोग चल रहा है, जिसके चलते हम थ्रेड के पाठ्यक्रम से पहले ही रद्द करना चाहते हैं। यहां हमारे पास क्या है: प्रोसेस्टस्टाईटफ़ोई पीएसआई नई प्रोसेस्टस्टाइनफ़ो (quotCMD. EXEquot, क्वेरी) psi. UseShellExecute का उपयोग करें शेलएक्सेक psi. RedirectStandardOutput stdout psi. CreateNoWindow noWindow hbProc नई प्रक्रिया () एचबीप्रक्र प्रोसेस। स्टार्ट (पीएसआई) एचबीप्रक्र। वेटफॉरएक्स () ठीक है, आप कर सकते हैं उपयोग: जबकि (hbProc. WaitForExit (someTimeout)) अगर (दंडनैनल) को 1 9 सितंबर को 5:15 बजे टूट जाता है, तोक्मार्क ग्रेवैलक्ॉट ltmarc. grav। जीटी ने लिखा: gt अच्छी तरह से, आप इसका इस्तेमाल कर सकते हैं: gt gt जबकि (hbProc. WaitForExit (कुछ टाइमआउट)) gt (ifCancel) को gt gt gt gt gt मार्क (नोट करें), दोनों नई प्रक्रिया () और प्रक्रिया को कॉल करने का कोई कारण नहीं है प्रारंभ करें (पीएसआई) या आप इसका इस्तेमाल कर सकते हैं: एचबीपीआरसी नई प्रक्रिया () एचबीप्रक्र। सक्षम रीसाइजिंग ईवेंट्स सच्चे एचबीप्रक्र. एक्सित न्यू इवेंटहान्डलर (फ़ंक्शनटोकैल्फाप्रोसिट) एचबीप्रक्र। स्टार्टइन्फो पीएसआई एचबीप्रक्र। स्टार्ट () अन्य धागा- पर ईवेंट रद्द करना चाहते हैं: एचबीपीआरसी - नया इवेंटहैंडलर functionToCallAfterProcesit) किसी भी मामले में, बस प्रक्रिया समाप्त होने और प्रतीक्षा रद्द करने की इच्छा के बीच संभावित दौड़ की स्थिति से अवगत रहें। 1 9 सितंबर, 4:11 पर, एलिस्टेयर जॉर्ज लेटन। xtra. co. nzgt ने लिखा: gt कितनी स्थायी है WaitForExit ()। मेरा मतलब है कि जीटी वैकल्पिक कोई भी इंतजार को तोड़ने के लिए कर सकता है अन्यथा मैं एक अलग फ़ंक्शन में अपना धागा जीटी चलाऊंगा, और उसे वैश्विक चर से नियंत्रित कर सकूंगा। Gt कारण - एक सीएमडी.एक्सई थ्रेड, जिसमें कंसोल है आवेदन चल रहा है, जिसे हम जीआर को अपने कोर के चलते धागे से पहले रद्द करने की जरूरत है ई। gt यहां है जो हमारे पास है: gt प्रोसेस्टस्टाइनफ़ोई पीई नई जीपी प्रोसेस्टस्टाईटफ़ाईन (उद्धरण सीएमडी.एक्सएक्वाट, क्वेरी) gt psi. UseShellExecute का उपयोग करेंशेलएक्सएसीटी पीटी। रीडायरेक्टस्टाडोडाउत्पाद स्टेडाउट जीटी psi. CreateNoWindow noWindow gt एचबीप्रक्र नई प्रक्रिया () gt एचबीप्रक्र प्रोसेस. स्टार्ट (पीएसआई) gt hbProc. WaitForExit () gt gt, धन्यवाद, gt एलिस्टेयर। आप या तो धागा चल रहे WaitForExit () को मार सकते हैं या ओवरलोड का उपयोग कर सकते हैं जो आपको टाइमआउट बूल प्रतीक्षाफोरएक्सिट (इंट एमएसटॉवाइट) को निर्दिष्ट करने की अनुमति देता है। यदि आप इसे एक अलग थ्रेड में चलाते हैं और इसे मारते हैं तो आप एक बाधित अपवाद प्राप्त करने जा रहे हैं। आप यह सुनिश्चित करना चाह सकते हैं कि आपके द्वारा शुरू की गई प्रक्रिया अभी भी चल रही है (यदि वह है, इसे मारना)। gt आप या तो थ्रेड चल रहे हो सकते हैं WaitForExit () या gt अधिभार का उपयोग करें जो आपको टाइमआउट बूल WaitForExit (int gt msToWait) को निर्दिष्ट करने की अनुमति देता है। यदि आप इसे एक अलग थ्रेड में चलाते हैं और इसे मारते हैं तो gt एक बाधित अपवाद पाने के लिए जा रहे हैं। आप यह सुनिश्चित करना चाह सकते हैं कि आपने जो जीटी प्रक्रिया शुरू की है वह अभी भी नहीं चल रही है (यदि यह है, तो इसे मारना)। gt धन्यवाद के साथ लोग धन्यवाद जो उपयोगी हैं क्या विकल्प सबसे अच्छा काम करेगा सलाह देंगे अल। कॉपीराइट प्रतिलिपि 2005-2018, टेकटल्क्स सभी अधिकार सुरक्षित। मैं धागे मॉडल में नया हूँ। आप किस प्रकार का उपयोग करेंगे: एक प्रक्रिया प्रारंभ करें जो एक फ़ाइल को संभालती है (process. StartInfo. FileName fileName) उपयोगकर्ता को प्रक्रिया बंद करने के लिए प्रतीक्षा करें या कुछ समय के बाद थ्रेड को त्याग दें अगर उपयोगकर्ता ने प्रक्रिया बंद कर दी है, तो फ़ाइल को हटाना प्रक्रिया को प्रारंभ करें और मुख्य थ्रेड से अलग थ्रेड पर प्रतीक्षा करना चाहिए, क्योंकि यह ऑपरेशन एप्लिकेशन को प्रभावित नहीं करना चाहिए। मेरे आवेदन में एक HTML रिपोर्ट उत्पन्न होती है I उपयोगकर्ता कहीं न कहीं क्लिक कर सकते हैं और देखें रिपोर्ट देखें - अब मैं एक अस्थायी फ़ाइल में रिपोर्ट की सामग्री को पुनः प्राप्त करता हूं और उस प्रक्रिया को लॉन्च करता है जो एचटीएमएल फ़ाइल संभालती है i. ई. डिफ़ॉल्ट ब्राउज़र। समस्या ये है कि मैं सफाई नहीं कर सकता, यानी अस्थायी फाइल को हटा दें। 4 मार्च को 15:35 को मुझसे पूछा गया कि मेरी प्रक्रिया फाइल को.flv में परिवर्तित करती है और उन्हें जावास्क्रिप्ट के साथ चलाती है जब मैं किसी थ्रेड के बिना फ़ंक्शन कॉल करता हूँ। नींद () इसके बाद मैं रूपांतरण प्राप्त नहीं कर सकता और न ही खिलाड़ी bcoz थ्रेड में पेज लोड होने से पहले अपना काम समाप्त करने के लिए समय नहीं था..लेकिन जब मैं फ़ंक्शन के बाद एक नींद डालती हूं। जब मेरे खिलाड़ी को आईएम मिल रहा है ndash अनुग्रह 4 जुलाई को 11:24 इस पुराने प्रश्न का एक उन्नत विकल्प जोड़ना अगर आप किसी भी थ्रेड को ब्लॉक किए बिना बाहर निकलने की प्रक्रिया का इंतजार करना चाहते हैं और अभी भी टाइमआउट का समर्थन करते हैं, तो निम्न प्रयास करें: दोबारा, स्वीकार्य जवाब की तुलना में इस दृष्टिकोण का लाभ यह है कि आप किसी भी थ्रेड्स को अवरुद्ध नहीं कर रहे हैं, जो आपके ऐप के ओवरहेड को कम करता है । उत्तर दिया Jul 30 13 at 0:39 मैं शायद एक फ़ाइल खोलने के लिए एक अलग प्रक्रिया का उपयोग नहीं करेगा इसके बजाय, आईडी शायद एक पृष्ठभूमि थ्रेड का उपयोग करता है (अगर मुझे लगता है कि ऑपरेशन एक लंबा समय ले रहा था और संभवतः यूआई थ्रेड ब्लॉक था)। बेशक, यह एक अच्छा काम करने वाला उदाहरण नहीं है (यह कुछ भी नहीं लौटाता है) और मैंने दिखाया कि यूआई कैसे अपडेट हो जाता है (आपको यूवी स्तर पर बैंगइनवॉक का इस्तेमाल करना है क्योंकि एक पृष्ठभूमि थ्रेड UI थ्रेड को अपडेट नहीं कर सकता है)। लेकिन यह दृष्टिकोण आम तौर पर मैं कैसे के बारे में एसिंक्रोनस संचालन को संभालने में जाता हूं। 4 मार्च को 15:46 पर उत्तर दिया

No comments:

Post a Comment