Здравствуйте, поэтому я в настоящее время разрабатываю программу, которая поможет мне автоматизировать функциональность скрипта Python, после долгих исследований я нашел способ запустить и прочитать вывод скрипта Python в окно консоли C #, но я хочуреализовать временное условие для его остановки (например, закрыть процесс через 5 минут). Мой код для открытия процесса выглядит следующим образом (кредит от первоначального автора):
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "C:\\Python27\\python.exe",
Arguments = cmd,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true
},
EnableRaisingEvents = true
};
process.ErrorDataReceived += Process_OutputDataReceived;
process.OutputDataReceived += Process_OutputDataReceived;
process.Start();
process.BeginErrorReadLine();
process.BeginOutputReadLine();
process.WaitForExit();
Console.Read();
Как вы можете видеть, процесс ожидает завершения, но иногда сценарий может останавливаться или работать неправильно, яхотел бы добавить условие, основанное на времени, чтобы закрыть процесс, если он не завершен через 5 минут. Я записываю время с помощью класса StopWatch, но при затруднении нацеливания процесса на его закрытие, 5 разных процессов скрипта python запускаются одновременно, поэтому закрытие процесса python не будет жизнеспособным. Я также использую process.WaitForExit ();который ожидает завершения процесса, но, как я уже говорил выше, это не всегда так, поэтому возникают проблемы с процессами, которые никогда не закрываются.
TL; DR: если процесс занимает более 5 минут -> Forceзакрыть
Есть предложения, пожалуйста?