Mor*_* M. 8 c# process invalidoperationexception
我正在使用以下代码启动一个新进程:
Process p = new Process();
p.StartInfo.FileName = "...";
p.StartInfo.Arguments = "...";
p.Start();
p.WaitForExit(300000); // 5 minutes
if (!p.HasExited)
p.Kill();
Console.Write(p.ExitCode);
Run Code Online (Sandbox Code Playgroud)
当过程在5分钟内结束时,这是有效的,但是当它没有时,我得到了
InvalidOperationException(进程必须在确定请求的信息之前退出...).
知道为什么我得到这个例外吗?
谢谢.
Dre*_*wen 15
根据MSDN,"该Kill方法异步执行.调用Kill方法后,调用WaitForExit方法等待进程退出,或检查HasExited属性以确定进程是否已退出."
换句话说,仅仅因为Kill回报并不意味着过程实际上已经消失.你需要打电话WaitForExit才能等到这个过程真的消失了.