Как продолжить выполнение других процессов в окне командной строки после прерывания запущенного процесса с использованием C # - PullRequest
0 голосов
/ 06 октября 2008

Я написал C # командное окно приложения. Я запускаю кучу процессов в командной строке внутри main (). Например,

void main()
{
    process p1 = new process()
    set p1 properties
    p1.start()
 -->p1.StandardInput.WriteLine("start /WAIT cmd.exe /c BUILD -cZP");
}

Эта строка выполнит некоторую программу в новом командном окне. Выполняя эту последнюю строку, я прерву это выполнение, используя ctrl + c, и верну управление выполнению основной программы.

цикл для вывода в окно выполнения.

p1.StandardInput.WriteLine("Done some action"); 
p1.WaitForExit();
p1.Close();

Выше три строки не выполняются. Вопрос в том, что p1 никогда не закрывается для выполнения следующих строк, которые есть в моей программе.

process p2 = new process()
...
p2.waitforExit()
p2.close.

Любое понимание вышеперечисленных проблем будет отличным. ТНХ.

1 Ответ

1 голос
/ 06 октября 2008

Если я вас правильно понимаю (что, я признаю, что, возможно, я вас не понимаю), я считаю, что проблема в том, что когда вы нажимаете CTRL-C, чтобы перейти к процессу p1, вы фактически убиваете этот процесс. Затем вы пытаетесь отправить текст на стандартный ввод для процесса, который только что был убит. Поскольку процесс больше не доступен для ввода, основная программа зависает. Это мое лучшее предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...