2012-06-18 81 views
0

这是我的C#代码:SessionEndingEvent没有得到所谓的

void main() 
    { 
     SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding); 
    } 

    void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) 
    { 
     Console.WriteLine(e.Reason); 
    } 

不知何故,没有输出。任何想法为什么?

+0

如果其中一个答案可以解决您的问题,请随时提出并接受答案 –

+0

我确实会这样做。我的问题还没有解决。我试图使用这个应用程序是一个Windows服务。 – Zulakis

+0

好的!服务的行为不像桌面应用程序。 –

回答

0

Accorind到remarks section in MSDN

如果您在Windows窗体使用SessionEnding检测系统注销或重启,就决定关闭事件是否会在此事件之前没有触发确定的方式。

因此,您不应该依赖此事件或以某种方式处理Closing事件以实现您的需求。

更新。更重要的是:

控制台应用程序不会引发SessionEnding事件。

+0

你知道这是否也适用于Windows服务? – Zulakis