如何在继续之前强制Process.Start()完成?

时间:2011-03-04 21:55:17

标签: c# .net-4.0 console

我正在创建一个控制台应用来处理文件,然后将其移至“已处理”文件夹。主控制台应用程序使用Process.Start()调用另一个应用程序。这个辅助应用程序实际上完成了将数据批量插入数据库的工作。批量插入完成后,主应用程序会将文件移动到另一个文件夹,然后继续执行其他任务。

在主应用程序中,如何在辅助应用程序完成之前阻止代码继续?在进入下一步之前,我确实需要完成第一个流程。

谢谢!

5 个答案:

答案 0 :(得分:7)

使用此方法:

process.WaitForExit();

答案 1 :(得分:5)

您可以使用 WaitForExit() Methode

答案 2 :(得分:4)

您可以尝试:

Process.Start(...).WaitForExit();

假设您正在使用ProcessStartInfo,您可能会更喜欢这样写:

var psi = new ProcessStartInfo();
psi.FileName = "SecondProcess.exe";
psi.Arguments = "arg1 arg2";
var process = Process.Start(psi);
if(process != null) process.WaitForExit();

答案 3 :(得分:3)

答案 4 :(得分:2)

在运行下一次迭代之前调用Process.WaitForExit()