代码之家  ›  专栏  ›  技术社区  ›  Jeremy

C#:Process.haseexited返回false,即使进程已终止

  •  6
  • Jeremy  · 技术社区  · 14 年前

    可能与这个问题相反: Process.HasExited returns true even though process is running?

    myProcess.Kill();
    
    while ( !myProcess.HasExited )
    {
        Thread.Sleep(1000);
    }
    

    1 回复  |  直到 7 年前
        1
  •  8
  •   Dirk Vollmar    14 年前

    MSDN 声明如下:

    当标准输出被重定向到异步事件处理程序时,当此属性返回true时,可能无法完成输出处理。要确保异步事件处理已完成,请在检查haseexited之前调用不带参数的WaitForExit()重载。

    无论如何,建议的解决方法可能会起到以下作用:

    myProcess.Kill();
    myProcess.WaitForExit();