У меня есть приложение WPF на C #, и мне нужно выполнить системную команду, которая никогда не существует (потому что она ждет от вас нажатия Q
).Я хочу принудительно завершить его после того, как получу вывод в первый раз, и я также не хочу блокировать пользовательский интерфейс WPF, поэтому я хочу сделать это асинхронно (я считаю, что потоки усложнят ситуацию).
Этото, что у меня сейчас есть:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " + command;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
Приведенный выше код имеет 2 проблемы: он блокирует пользовательский интерфейс и никогда не получает вывод (процесс не завершится).
Примечание: я использовалWaitForExit()
потому что мне нужен вывод перед продолжением.