确定关闭正在关闭我的应用程序

joh*_*hnc 5 .net c# shutdown

是否有可能在.NET中确定我的应用程序是否因为Windows被给予关闭命令而关闭(而不是任何旧的应用程序关闭),以便写出一些临时缓存文件,甚至阻止关闭足够长时间以提示用户输入?

虽然我目前的范围涉及Winform应用程序和Windows服务,但如果可能的话,我有兴趣以通用的方式理解它

Har*_*lby 7

SystemEvents.SessionEnding看起来像是一个很好的起点.该文章讨论了注销/关闭时所涉及的事件序列.