Существует программа (C#), которая запускает мой скрипт через System.Diagnostics.Process, а затем вызывает WaitForExit(). Скрипт (python в этом случае, хотя может быть любым) затем порождает дочерний процесс и завершает работу. Я ожидал, что программа продолжит работу, но она зависает, пока дочерний процесс не завершится.Fooling System.Diagnostics.Process WaitForExit()
Я пробовал много способов запуска подпроцессов, от os.fork от python до написания оболочки оболочки оболочки, но каждый метод заставляет программу зависать. Я не могу изменить код программы C#, что мне нужно сделать для дочернего процесса, чтобы программа продолжалась?
Примечание: Я не знаю, имеет ли значение, но программа C# работает в моно на ubuntu.
Редактировать: После дальнейшего пересмотра кода C# прямо перед вызовом WaitForExit существует цикл while (!process.StandardOutput.EndOfStream)
, может возникнуть проблема?
У вас есть контроль над кодом подпроцесса, или вам нужно сделать это из своего среднего скрипта Python? – abarnert
У меня есть контроль над обоими. На самом деле мой метод os.fork использовал один скрипт Python. – RedHatter
ОК, это должно быть еще проще ... позвольте мне отредактировать ответ. – abarnert