我正在尝试用C#重新编写Windows命令提示符。我想知道命令提示符如何知道何时等待进程开始退出,以及何时不等待被调用的进程退出。
例如,如果您在命令提示符下键入“记事本”,Notepad将启动,但您仍然可以执行其他命令。但是,如果您打开一个实用程序,如more.com、ping.exe或其他实用程序,它将等待正在执行的程序完成,然后才允许您执行另一个命令。
命令提示符如何知道何时等待退出,以及如何在C#中模拟此行为?
发布于 2014-03-09 20:45:44
命令提示符的默认设置是在单独的进程/fork中生成GUI程序。但是,您可以通过命令提示符/ shell脚本内联运行记事本(或其他GUI程序):
start /w notepad.exe
这样,命令提示符/ shell脚本仅在notepad.exe进程终止后才会继续。
希望这能帮上忙,TW
发布于 2014-03-08 19:16:50
当您启动一个新进程时,提示符将不会等待。但是,如果您运行的命令完全在提示符的当前实例的边界下工作,则它会等待。
因此,命令notepad
只是启动记事本应用程序,而离开对应用程序的控制。而命令ipconfig
在提示符的域(不,这不是application domain)下运行。
为了更好地概括,当您在等价的C#中使用Process.Start
时,不要等待。无论如何,它都不会。
https://stackoverflow.com/questions/22273777
复制相似问题