我正在创建一个控制台应用来处理文件,然后将其移至“已处理”文件夹。主控制台应用程序使用Process.Start()调用另一个应用程序。这个辅助应用程序实际上完成了将数据批量插入数据库的工作。批量插入完成后,主应用程序会将文件移动到另一个文件夹,然后继续执行其他任务。
在主应用程序中,如何在辅助应用程序完成之前阻止代码继续?在进入下一步之前,我确实需要完成第一个流程。
谢谢!
答案 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)
请参阅以下链接:
http://support.microsoft.com/kb/305368
http://www.monkeycancode.com/c-run-process-wait-for-it-to-finish
答案 4 :(得分:2)
在运行下一次迭代之前调用Process.WaitForExit()。