如何在 Windows 和 Linux 系统上使用 Avalonia 框架处理系统关闭事件?
Posted
技术标签:
【中文标题】如何在 Windows 和 Linux 系统上使用 Avalonia 框架处理系统关闭事件?【英文标题】:How to handle system shutdown event using Avalonia framework on both Windows and Linux systems? 【发布时间】:2021-06-29 09:19:11 【问题描述】:我正在使用带有 Avalonia 框架的 C# 开发应用程序。当系统关闭时,我需要执行一些任务(将日志和元数据写入文件)以使应用程序优雅地完成工作。
以前在 Windows 上使用 WPF,我使用订阅 Microsoft.Win32.SystemEvents.SessionEnding
事件。但正如命名空间所说,它依赖于操作系统。
在 Avalonia,我尝试处理 AppDomain.CurrentDomain.ProcessExit
或 ((IClassicDesktopStyleApplicationLifetime)ApplicationLifetime).Exit
事件,但它们都没有被触发。
所以,问题是,在两个系统上处理操作系统关闭的正确方法是什么。
【问题讨论】:
【参考方案1】:你应该试试shutdown事件,它的签名如下...
((IClassicDesktopStyleApplicationLifetime)ApplicationLifetime).ShutdownRequested += delegate(object? sender, ShutdownRequestedEventArgs e)
//Write logs and metadata to files here...
;
【讨论】:
以上是关于如何在 Windows 和 Linux 系统上使用 Avalonia 框架处理系统关闭事件?的主要内容,如果未能解决你的问题,请参考以下文章
Linux原生C库。如何配置Visual Studio代码在Windows上使用它们?
如何在 Windows 10 的 linux 子系统上安装 Ngrok 2.0
如何在Linux上使用Windows标头构建Visual C ++应用程序?