【问题标题】:How to handle system shutdown event using Avalonia framework on both Windows and Linux systems?如何在 Windows 和 Linux 系统上使用 Avalonia 框架处理系统关闭事件?
【发布时间】:2021-06-29 09:19:11
【问题描述】:

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

【问题讨论】:

    标签: c# linux windows avalonia


    【解决方案1】:

    你应该试试shutdown事件,它的签名如下...

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      相关资源
      最近更新 更多