मैं सी # कोड का एक टुकड़ा लिख रहा हूं जो इंस्टॉलर लॉन्च करता है और अन्य सामानों के साथ जारी रखने से पहले वापस लौटने की प्रतीक्षा करता है।सी # स्पॉन्डेड प्रक्रियाओं का पता लगाना
मुझे कुछ इंस्टॉलरों के साथ परेशानी हो रही है जो मूल प्रक्रियाओं के साथ वास्तविक प्रक्रियाओं के साथ लौटने वाली मूल प्रक्रियाओं के साथ अन्य प्रक्रियाओं को जन्म देती हैं। क्या कोई तरीका है कि मैं सभी प्रक्रियाओं को समाप्त होने तक प्रतीक्षा कर सकता हूं?
यहाँ स्पष्ट करने के लिए परिदृश्य मैं कुछ समस्या आ रही है:
- लॉन्च Installer1
- Installer1/अन्य स्थापना (Installer2)
- इंस्टालर 1 रिटर्न
- आवेदन स्थापित है सोचता है कि शुरूआत spawns समाप्त हो गया लेकिन इंस्टॉलर 2 अभी भी चल रहा है। इससे ऐप में वर्कफ़्लो के साथ समस्याएं आती हैं।
यहाँ कोड मैं इस समय का उपयोग कर रहा है:
// launch installer
Process process = windowsApplicationLauncher.LaunchApplication(_localFilePath);
// wait for process to return
do
{
if (!process.HasExited)
{
}
}
while (!process.WaitForExit(1000));
if (process.ExitCode == 0)
{
_fileService.MoveFile(_localFilePath, _postInstallFilePath);
_notification.SetComplete(false);
return true;
}
return false;
क्या आपके पास तैयार प्रक्रियाएं हैं? जैसे क्या आप इंस्टॉलर 2 को संशोधित कर सकते हैं यदि इससे आपके लिए पूरा होने का पता लगाना आसान हो जाएगा? या किसी और द्वारा आपूर्ति की गई इंस्टॉलर 2 है, या आप यह भी नहीं जानते कि अतिरिक्त प्रक्रियाओं को कैसे बनाया जा सकता है और मनमाने ढंग से उत्पन्न प्रक्रियाओं को संभालने की आवश्यकता है? – itowlson
हम प्रश्न में विशेष इंस्टॉलर के मालिक हैं। हालांकि हम मनमाने ढंग से उत्पन्न प्रक्रियाओं को संभालने में भी सक्षम होना चाहेंगे। – tjjjohnson