में एक स्वतंत्र धागा या प्रक्रिया को फैलाना मैं गलत दिशा में इस पर आ रहा हूं, इसलिए किसी भी मदद की सराहना की जाएगी।रुबी
मेरे पास रूबी स्क्रिप्ट है जो अन्य चीजों के साथ एक निष्पादन योग्य शुरू करती है। मैं इस निष्पादन योग्य को शुरू करना चाहता हूं - वर्तमान में सिस्टम का उपयोग करके ट्रिगर किया जा रहा है - और फिर स्क्रिप्ट के साथ जारी रखें। जब स्क्रिप्ट खत्म हो जाती है, तो मैं इसे बाहर निकलना चाहता हूं लेकिन निष्पादन योग्य चलाना छोड़ देता हूं।
मूल रूप से मैं निम्नलिखित
# Do some work
# Start the executable
system("executable_to_run.exe")
# Continue working
था लेकिन executable_to_run.exe एक अवरुद्ध निष्पादन, और सिस्टम "" है नहीं होगा बाहर निकलें जब तक निष्पादन योग्य चल खत्म
(जो मैं इसे नहीं करना चाहती)तो मैं अब कुछ इस तरह (काफी कटौती)
# Do some work
# Start the executable on it's one thread
Thread.new do
system("executable_to_run.exe")
end
# Continue working
यह अच्छी तरह से काम करता है में है कि मेरी स्क्रिप्ट जबकि धागा वें में निष्पादन चलाता प्रदर्शन जारी रख सकते है ई पृष्ठभूमि। दुर्भाग्यवश, जब मेरी स्क्रिप्ट बाहर निकलने के लिए आती है, तो निष्पादन योग्य थ्रेड अभी भी चल रहा है और यह तब तक बाहर नहीं निकलेगा जब तक थ्रेड बाहर निकल न जाए। अगर मैं निष्पादन योग्य को मारता हूं तो थ्रेड निकलता है और स्क्रिप्ट निकलती है।
तो मुझे "execable_to_run.exe" ट्रिगर करना है और इसे पृष्ठभूमि में चलाना छोड़ दें।
मैं विंडोज पर रूबी 1.8.7 का उपयोग कर रहा हूं, जिसका अर्थ है कि कांटा अनुपूरक है। मैं 1.9 तक अपग्रेड नहीं कर सकता क्योंकि आंतरिक और बाहरी टीम निर्भरताएं हैं जिन्हें मुझे पहले हल करने की आवश्यकता है (और जो जल्द ही कभी नहीं किया जाएगा)।
मैं
- 'स्टार्ट' आदेश के माध्यम से प्रक्रिया चल रहा है की कोशिश की है लेकिन यह अभी भी ब्लॉक
- निष्पादन धागा पर Thread.kill कॉलिंग लेकिन यह अभी भी निष्पादन योग्य मारे जाने के लिए की आवश्यकता है
तो यह कुछ मैं रूबी में क्या कर सकते हैं और मैं बस कुछ याद कर रहा हूँ या मैं एक समस्या है क्योंकि मैं कांटा का उपयोग नहीं कर सकते हैं?
अग्रिम धन्यवाद
यदि सिस्टम ("execable_to_run.exe" प्रारंभ करें 'ब्लॉक, कुछ गड़बड़ हो गया है। 'स्टार्ट' के बिंदुओं में से एक यह है कि यह एक नई, स्वतंत्र प्रक्रिया शुरू करता है। – cHao
रूबी 1.8.7 विंडोज पर मूल धागे के लिए कोई समर्थन नहीं है क्योंकि विंडोज ने पॉज़िक्स धागे को सही ढंग से कार्यान्वित नहीं किया है। आप यह जानते थे। इस काम को करने का एकमात्र तरीका 'सिस्टम' कॉल के भीतर एक स्वतंत्र प्रक्रिया शुरू करने के लिए विंडोज को मनाने के लिए है। इसका उत्तर देने के लिए आपको एक रूबी व्यक्ति की आवश्यकता होगी। –