在c#中杀死进程无法处理请求,因为进程已经退出

Killing processes in c# Cannot process request because the process has exited

我正在用 c# 编写一个程序,在隐身模式下创建一个 google chrome 的进程。一切顺利。我想启动该进程并在 2 秒后终止它(并关闭 chrome window)。

 String a = textBox1.Text + " --incognito";//Get the link that the user types
                process.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome";
                process.StartInfo.Arguments =a;
                process.Start();
                System.Threading.Thread.Sleep(2000);


                process.Kill();

它给我一个错误:无法处理请求,因为进程已经退出。

断点在 process.Kill();线.

看起来 chrome 进程是一个启动器,它打开另一个包含 chrome 浏览器的 chrome 进程,然后启动器进程关闭。所以你正在关闭一个已经自行关闭的进程。

此检查可帮助您防止进程在终止前终止。

if( !process.WaitForExit(2000) ) {
   if (!process.HasExited) process.Kill();
}