【发布时间】:2011-03-04 21:55:16
【问题描述】:
我正在创建一个控制台应用程序来处理文件,然后将其移动到“已处理”文件夹。主控制台应用程序使用 Process.Start() 调用另一个应用程序。这个辅助应用程序实际上执行将数据批量插入数据库的工作。批量插入完成后,主应用程序会将文件移动到另一个文件夹,然后继续执行其他任务。
在主应用程序中,如何防止代码在辅助应用程序完成之前继续运行?在继续下一步之前,我真的需要完成第一个过程。
谢谢!
【问题讨论】:
我正在创建一个控制台应用程序来处理文件,然后将其移动到“已处理”文件夹。主控制台应用程序使用 Process.Start() 调用另一个应用程序。这个辅助应用程序实际上执行将数据批量插入数据库的工作。批量插入完成后,主应用程序会将文件移动到另一个文件夹,然后继续执行其他任务。
在主应用程序中,如何防止代码在辅助应用程序完成之前继续运行?在继续下一步之前,我真的需要完成第一个过程。
谢谢!
【问题讨论】:
使用这个方法:
process.WaitForExit();
【讨论】:
您可以使用 WaitForExit() 方法
【讨论】:
你可以试试:
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();
【讨论】:
在运行下一次迭代之前调用Process.WaitForExit()。
【讨论】: