会话结束事件未被调用

本文关键字:调用 事件 结束 会话 | 更新日期: 2023-09-27 18:37:28

这是我的C#代码:

    void main()
    {
        SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding);
    }
    void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
    {
        Console.WriteLine(e.Reason);
    }

不知何故,没有输出。知道为什么吗?

会话结束事件未被调用

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

在 MSDN 中的备注部分:

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

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

更新。更重要的事情:

控制台应用程序不会引发会话结束事件。