1

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

4

1 回答 1

0

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

((IClassicDesktopStyleApplicationLifetime)ApplicationLifetime).ShutdownRequested += delegate(object? sender, ShutdownRequestedEventArgs e) 
{
    //Write logs and metadata to files here...
};
于 2021-12-14T10:38:56.447 回答