如何在使用C#中断正在运行的进程后,在命令行窗口中继续执行其他进程

本文关键字:进程 命令行 窗口 继续 其他 执行 中断 运行 | 更新日期: 2023-09-27 17:47:46

我已经编写了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.

对上述挑战的任何见解都将是伟大的。thx。

如何在使用C#中断正在运行的进程后,在命令行窗口中继续执行其他进程

如果我正确理解你(我承认我可能没有理解你),我相信问题是当你按下CTRL-C进入进程p1时,你实际上正在扼杀这个进程。然后,您试图将文本发送到流程的标准输入,该流程刚刚被终止。由于进程不再可用于接受您的输入,主程序将挂起。这是我最好的猜测。