【问题标题】:How do I force Process.Start() to complete before proceeding?在继续之前如何强制 Process.Start() 完成?
【发布时间】:2011-03-04 21:55:16
【问题描述】:

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

在主应用程序中,如何防止代码在辅助应用程序完成之前继续运行?在继续下一步之前,我真的需要完成第一个过程。

谢谢!

【问题讨论】:

    标签: c# .net-4.0 console


    【解决方案1】:

    使用这个方法:

    process.WaitForExit();
    

    【讨论】:

      【解决方案2】:

      您可以使用 WaitForExit() 方法

      【讨论】:

        【解决方案3】:

        你可以试试:

        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();
        

        【讨论】:

          【解决方案4】:
          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-02-12
            • 2015-09-16
            • 2020-02-24
            • 1970-01-01
            • 2019-03-12
            • 2010-09-05
            • 2013-11-21
            • 1970-01-01
            相关资源
            最近更新 更多