我正在尝试从c#程序中启动第二个exe程序。 这是我当前的代码:
Process p = new Process();
p.StartInfo.FileName = System.Windows.Forms.Application.StartupPath + "\\HASy-Diag.exe";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.Arguments = "git-synchro " + args[1];
p.StartInfo.UseShellExecute = false;
p.Start();
但是这里有个问题:我想在启动第二个exe后立即退出程序。
重点是,我必须执行一些异步工作,这些工作不能与程序位于同一进程中。注意这里必须在另一个进程中,而不是另一个线程中。原因是,我想在IDE的构建旁边做一些工作。在该IDE中实现构建之前和之后的运行命令。 IDE(这里是Keil)会等待,直到预构建过程完成(这就是为什么我必须停止它)然后开始构建。
我想在IDE生成项目时检索信息(以节省时间)。所以我想从一个进程中启动一个新的进程。
有可能吗?如果退出完整程序,则我从上面给出的代码开始的任何过程都不会执行。仅当我在代码中包含p.waitForExit()
时,此代码才会执行。
答案 0 :(得分:0)
将p.WaitForExit与参数一起使用-传递0毫秒,因此您的应用将不会等待,但可以正常继续:
p.WaitForExit(0);
如果进程结束,则此方法返回true;如果进程仍在进行中,则返回false,但是对于您而言,这无关紧要。