c# - InvalidOperationException 与进程

标签 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);

当该过程在 5 分钟内结束时,这是有效的,但如果没有,我得到

InvalidOperationException (Process must exit before requested information can be determined...).

知道为什么我会收到此异常吗?

谢谢。

最佳答案

根据 MSDN , "Kill方法异步执行,调用Kill方法后,调用WaitForExit方法等待进程退出,或者检查HasExited 属性来判断进程是否已经退出。”

换句话说,仅仅因为 Kill 返回并不意味着该进程实际上已经消失。您需要调用 WaitForExit 以等待进程真正消失。

关于c# - InvalidOperationException 与进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996175/

相关文章:

c# - 在 IIS 中使用带有连接字符串的 Windows 身份验证连接到 SQL 2008 R2

c# - Java 中的 Process.Start 帮助

c# - 用于启动进程的环境 block 不能超过 65535 字节

c# - 当前类型 IUserStore<ApplicationUser> 和 DbConnection 分别是接口(interface)和抽象类,无法构造

c# - 将两个 LINQ 语句合并为一个

c# - 在 vb.net 项目上使用时,C# DLL 不起作用

C# for continue inside foreach

linux - 追踪过程树

process - 宏完成后 Excel.exe 保留在内存中