有没有办法让我的应用程序等到脚本完成?

时间:2014-03-25 17:29:41

标签: c# winforms .net-3.5

为了这个问题,我已经简化了我的代码,但基本上会发生这样的事情:

private void RunScript(string path)
{
    Process.Start(path);
    lblStatus.Text = "Step 6 Complete";
}

但是,我不希望标签的文本更新,直到脚本完成运行。那可能吗?或者说,实际/可行吗?

3 个答案:

答案 0 :(得分:2)

如果您想等待最长的给定时间,只需替换您的代码:

 Process.Start(path).WaitForExit(milli seconds);

或者如果你想要永远等待(通常直到它完成)

 Process.Start(path).WaitForExit();

答案 1 :(得分:1)

您可以使用Process.Start(path).WaitForExit();那将...等待进程退出然后继续。

如果这是在你的主UI线程上的话,那就好了,因为UI会在它工作时冻结并变得无法响应。当您成功完成(或必须处理错误)时,在BackgroundWorker或类似的情况下关闭该过程并更新/启动第7阶段。

答案 2 :(得分:0)

当进程开始添加do while循环时,Process.Start返回true,应该是

  bool started = Process.Start(path)

http://msdn.microsoft.com/en-us/library/vstudio/e8zac0ca