0

这是我的 C# 代码:

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

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

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

4

2 回答 2

1

http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx(示例 2)几乎解释了有关 Windows 服务中 SystemEvents 的所有内容。

于 2012-06-18T10:23:51.033 回答
0

根据 MSDN中的备注部分

如果您在 Windows 窗体中使用 SessionEnding 来检测系统注销或重新启动,则没有确定的方法来确定 Closing 事件是否会在此事件之前触发。

因此,您不应依赖此事件或以某种方式处理Closing事件来满足您的需求。

更新。更重要的是:

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

于 2012-06-18T10:22:56.727 回答