gpt4 book ai didi

c# - 在处理 Application.Exit 事件时,如何防止我的 WPF 应用程序因系统关闭而终止?

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:17 26 4
gpt4 key购买 nike

<分区>

我们有一个应用程序需要在关闭时保存设置,包括关闭 Windows 时。在这种情况下,我们成功地接收到 Application.Exit 事件,但随后,根据时间的不同,应用程序将被简单地终止。我们所做的不仅仅是保存两个带有设置的小 XML 文件。有时他们会得救,有时不会,同样取决于时间。

在收到 Windows 正在关闭的信号后,是否允许应用程序进行清理的最长时间?

以下解决方法“有效”,但我不明白为什么:

// In our main application class derived from Application:
protected override void OnSessionEnding(SessionEndingCancelEventArgs e)
{
e.Cancel = true;
this.Shutdown();
base.OnSessionEnding(e);
}

这似乎工作正常,并允许应用程序以与正常情况相同的方式退出(它是一种最小化到托盘类型的应用程序,使用 ShutdownMode.OnExplicitShutdown 并且当从托盘图标退出我们确实调用了 Application.Shutdown)。

那么为什么windows不允许应用程序有时间处理Exit事件呢?是什么导致它在看似没有等待时间的情况下强制终止应用程序?是不是因为我们没有打开的窗口了(当主窗口最小化到托盘但不关闭时我们隐藏了它)?

解决方法是什么?这是不好的做法还是可以的?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com