如何在Windows和Linux系统上使用Avalonia框架处理系统关闭事件



我正在使用C#和Avalonia框架开发一个应用程序。当系统关闭时,我需要执行一些任务(将日志和元数据写入文件(,以便应用程序正常完成任务。以前在Windows上使用WPF时,我使用了对Microsoft.Win32.SystemEvents.SessionEnding事件的订阅。但正如名称空间所说,它依赖于操作系统。在阿瓦隆尼亚,我试图处理AppDomain.CurrentDomain.ProcessExit((IClassicDesktopStyleApplicationLifetime)ApplicationLifetime).Exit事件,但它们都没有启动。所以,问题是,在两个系统上处理操作系统关闭的正确方法是什么。

您应该尝试关闭事件,它的签名如下。。。

((IClassicDesktopStyleApplicationLifetime)ApplicationLifetime).ShutdownRequested += delegate(object? sender, ShutdownRequestedEventArgs e) 
{
//Write logs and metadata to files here...
};

最新更新