繁体   English   中英

系统重启时未调用 Application.Exit 事件

[英]Application.Exit Event not invoked on system reboot

我有一个 WPF 应用程序,每次应用程序退出时都需要保存其当前状态。 目前,我正在处理System.Windows.Application.Exit事件以保存应用程序的状态。 但是,似乎该事件没有被调用系统重新启动——只是普通的关机。 这是预期的行为吗?

这就是我的应用程序的样子。

public class MyApp : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        ...
        this.Exit += OnExit;
    }
    private void OnExit(object sender, ExitEventArgs e)
    {
        SaveMyApplicationState();
    }
}

我可以使用哪些事件来通知系统重新启动,以便可以保存我的应用程序状态?

要确定系统何时重新启动或关闭,请使用SessionEnding事件:

应用程序.xaml

<Application ...
     SessionEnding="App_SessionEnding">
    ...
</Application>

应用程序.xaml.cs

public partial class App : Application
{
    void App_SessionEnding(object sender, SessionEndingCancelEventArgs e)
    {
        if (.../*canceling*/)
        {
            e.Cancel = true;
        }
        else
        { 
            // Processing before terminating (save current state)
            // ...               
        }
    }
}

有关详细信息,请参阅文档: Application.SessionEnding 事件

注意: Windows Vista 中的应用程序关闭更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM