关于HasExited触发Exited事件的问题
最近在写一个Online Judge的系统,里面用到Process类。
Process类有一个Exited事件,看看MSDN的解释:
System.ComponentModel.Win32Exception
Message="拒绝访问。"
Source="System"
ErrorCode=-2147467259
NativeErrorCode=5
Exited 事件指示关联进程已退出。发生这种情况表示进程终止(已中止)或成功关闭。仅当 EnableRaisingEvents 属性的值为 true 时才发生此事件。
这又涉及到EnableRaisingEvents这个属性,MSDN的意思是,只有值为True,才会触发Exited事件,否则即使程序退出,也不会触发Exited事件。
可是我写了如下程序,还是触发了Exited事件
运行结果:
还是触发了Exited事件……
对于这个问题,研究了好久,根据程序自动退出/操作系统关闭程序/process.kill结束程序三种情况,做了多次实验发现…
EnableRaisingEvents为False时,程序结束的确不会触发Exited事件…