У меня есть приложение .NET, которое должно выполнить несколько исполняемых файлов. Я использую класс Процесса, но Процесс. Запустите не блокируется. Мне нужен первый процесс для окончания перед вторыми выполнениями. Как я могу сделать это?
Кроме того, я хотел бы все процессы ко всему выводу к той же консоли. Как это, они, кажется, открывают свои собственные окна. Я уверен, что могу использовать поток StandardOutput для записи в консоль, но как я могу подавить вывод по умолчанию?
Я полагаю, вы ищете:
Process p = Process.Start("myapp.exe");
p.WaitForExit();
Для вывода:
StreamReader stdOut = p.StandardOutput;
Тогда вы используете его как любой потоковый ридер.
Для подавления окна немного сложнее:
ProcessStartInfo pi = new ProcessStartInfo("myapp.exe");
pi.CreateNoWindow = true;
pi.UseShellExecute = true;
// Also, for the std in/out you have to start it this way too to override:
pi.RedirectStandardOutput = true; // Will enable .StandardOutput
Process p = Process.Start(pi);