У меня есть интерфейс, который генерирует входной файл для другой программы для расчета производительности насоса, а затем запускает эту программу и собирает выходные данные. Если входные данные не подходят для расчетов в сторонней программе, сторонняя программа будет сканировать sh и выдавать crypti c сообщения об ошибках, которые будут продолжать появляться независимо от того, сколько раз вы нажмете «ОК». ". Сторонняя программа - это просто файл .exe, который у меня есть, и у меня самого нет доступа к исходному коду.
Есть ли способ вызвать эту программу, но разрешить моему интерфейсу убить ее в случае сбоя? В настоящее время моя единственная работа - открыть диспетчер задач и вручную убить процесс.
Ниже мой фрагмент кода, который вызывает программу для запуска. "cpump.exe" - это сторонняя программа, о которой я говорю. Я понимаю, что он никогда не вернет False, поскольку программа зависает до этого момента в коде. Пожалуйста, извините за мое невежество / плохой стиль, я ни в коем случае не программист / разработчик, просто инженер-механик, пытающийся автоматизировать часть своей скучной работы!
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "c:\\cpump\\file\\cpump.exe";
start.WindowStyle = ProcessWindowStyle.Hidden;
start.UseShellExecute = false;
start.WorkingDirectory = "c:\\cpump\\file\\";
start.Arguments = "/k";
start.CreateNoWindow = true;
int exitCode;
// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
// Retrieve the app's exit code
exitCode = proc.ExitCode;
}
if (exitCode == 0)
{
MessageBox.Show("Sucessful calculation complete.");
return true;
}
else
{
return false;
}