可能与此问题相反:即使进程正在运行,Process.HasExited也会返回true?
我在一个进程上调用了Kill(),它似乎已经退出了.但是当我测试HasExited时,我得到了错误:
myProcess.Kill();
while ( !myProcess.HasExited )
{
Thread.Sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
这将持续无限期.当然,我必须更改此代码以最终停止等待,但我很好奇为什么HasExited仍然返回false,因为这个过程似乎从地图上掉了下来.
你重定向标准输出?MSDN声明如下:
当标准输出重定向到异步事件处理程序时,当此属性返回true时,输出处理可能无法完成.要确保已完成异步事件处理,请在检查HasExited之前调用不带参数的WaitForExit()重载.
无论如何,建议的解决方法应该可以做到这一点:
myProcess.Kill();
myProcess.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3153 次 |
最近记录: |