为了这个问题,我已经简化了我的代码,但基本上会发生这样的事情:
private void RunScript(string path)
{
Process.Start(path);
lblStatus.Text = "Step 6 Complete";
}
但是,我不希望标签的文本更新,直到脚本完成运行。那可能吗?或者说,实际/可行吗?
答案 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)