我最近看到一些生产代码的效果:
if (Process.GetCurrentProcess().HasExited)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
这有意义吗?直观地说,如果进程已经退出,那么其中就没有代码可以运行.
如果没有,那么判断当前流程是否正在终止的好方法是什么?
如果它具有任何相关性,那么用例就是避免弹出断言,例如在进程被杀死时没有丢弃的对象.
检查它的源代码,IsExited结果发现没有什么引人注目的事情发生。IsExited询问操作系统进程是否已终止以及退出代码是什么。就是这样。
输出重定向的整个主题并不适用。
您在那里找到的代码将始终评估为 false。把它去掉,找出是谁写的,问他的意思。或许是一场误会。