等到过程结束
回答
我觉得你只是想这样的:
var process = Process.Start(...);
process.WaitForExit();
的方法见MSDN page。它也有超载的地方,你可以指定超时时间,所以你不会永远等待。
使用Process.WaitForExit
?或者如果您不想阻止,请订阅Process.Exited
活动?如果这不符合你的要求,请给我们更多关于你的要求的信息。
Process.WaitForExit应该就是你想要的,我认为。
你可以使用等待退出,或者你可以赶上HasExited财产和更新用户界面,使用户“通知”(期望管理):
System.Diagnostics.Process process = System.Diagnostics.Process.Start("cmd.exe");
while (!process.HasExited)
{
//update UI
}
//done
我做我的应用程序如下:
Process process = new Process();
process.StartInfo.FileName = executable;
process.StartInfo.Arguments = arguments;
process.StartInfo.ErrorDialog = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
process.Start();
process.WaitForExit(1000 * 60 * 5); // Wait up to five minutes.
里面还有一些额外的功能,你可能会发现有用...
否“它也适用于......” – AnthonyLambert 2013-08-28 13:42:55
试试这个:
string command = "...";
var process = Process.Start(command);
process.WaitForExit();
对已回答的已回答问题的答案的评论有什么意见?你不仅浪费了你自己的周期,而且还迫使我浪费我的周期。 – 2015-07-01 13:53:40
@AdamBilinski问题和答案旨在让其他人不仅有问题的人可以看到问题 – L3n 2015-07-23 23:07:19
@ L3n我同意,但这个答案与接受的答案完全相同,因此它毫无意义! – 2015-07-24 08:55:58
我有一个案例,Process.HasExited
在关闭属于该进程的窗口后没有改变。所以Process.WaitForExit()
也没有工作。我不得不监测Process.Responding
那去假关闭窗口一样,后:
while (!_process.HasExited && _process.Responding) {
Thread.Sleep(100);
}
...
也许这可以帮助别人。
像乔恩斯基特说,使用Process.Exited
:
proc.StartInfo.FileName = exportPath + @"\" + fileExe;
proc.Exited += new EventHandler(myProcess_Exited);
proc.Start();
inProcess = true;
while (inProcess)
{
proc.Refresh();
System.Threading.Thread.Sleep(10);
if (proc.HasExited)
{
inProcess = false;
}
}
private void myProcess_Exited(object sender, System.EventArgs e)
{
inProcess = false;
Console.WriteLine("Exit time: {0}\r\n" +
"Exit code: {1}\r\n", proc.ExitTime, proc.ExitCode);
}
没有真正回答这个问题。请优化您的答案以解决问题 – Grantly 2017-11-24 16:24:31
现在呢?也许打开VB并做出解决方案;) – 2017-11-24 18:17:06
- 1. 等到previos过程结束
- 2. 等到每个过程结束
- 3. shell脚本等到过程结束
- 4. 等到dispatch_async线程结束
- 5. 如何要等到线程结束
- 6. 等待,直到例程结束Arduino
- 7. 不等待线程结束
- 8. 不能等待过程中运行,直到结束
- 9. jquery - 等到函数结束
- 10. 等到功能结束
- 11. 等到活动结束后
- 12. 等到处理结束
- 13. jQuery - 等到SlideUp()结束()
- 14. 结束matlab过程
- 15. 结束PLSQL过程
- 16. 等待HttpWebRequest.BeginGetRequestStream结束
- 17. 等待pthread_cancel结束
- 18. 过程在TTF_RenderText_Shaded行结束
- 19. 过程意外结束
- 20. 结束的组装过程
- 21. Lua程序过早结束
- 22. C++程序过早结束
- 23. 不能等待线程结束onPause
- 24. 正在等待进程结束
- 25. 等待线程结束的问题
- 26. Android的等待线程结束
- 27. 进程结束等待退出
- 28. 如何等待子进程结束
- 29. 当等待()结束时进程终止
- 30. 如何等待进程结束C++
+1的事件。 – NLV 2010-06-30 09:26:53
使+1 ++ :) – Apelsin 2013-05-24 06:04:47
绝对好的信息Process.Exited,但OP确实说“等待” – 2014-06-25 18:07:34