这是我的C#代码:
void main()
{
SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding);
}
void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
Console.WriteLine(e.Reason);
}
不知何故,没有输出。有什么想法吗?
答案 0 :(得分:1)
http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx(示例2)几乎解释了Windows服务中SystemEvents的所有内容。
答案 1 :(得分:0)
Accorind到remarks section in MSDN:
如果您在Windows窗体中使用SessionEnding来检测系统注销或重新启动,则无法确定是否在此事件之前触发Closing事件。
因此,您不应该依赖此事件或以某种方式处理Closing
事件以满足您的需求。
<强>更新即可。更重要的是:
控制台应用程序不会引发SessionEnding事件。