当用户取消关闭时如何保持我的 WPF C# 应用程序运行

问题描述 投票:0回答:1

我有一个 C# WPF 应用程序,它将作为后台进程运行。要求是,它必须在后台持续运行。但在以下情况下会失败:

用户点击关闭,但由于其他应用程序(例如记事本等)中的一些未保存的更改,关闭被停止并且用户取消关闭。现在我的应用程序不再运行。

我尝试了以下步骤,但没有成功:

1)在

SystemEvents_SessionEnding
我尝试运行一个.bat文件,该文件将在5分钟延迟后启动我的应用程序。

  1. 在 powershell 脚本中尝试了与上述相同的逻辑。

两者都是失败的。请在这里帮助我。

c# wpf application-shutdown
1个回答
0
投票

您可能应该将您的申请分成两部分

完成所有实际工作的部分应该作为服务运行。这使得它独立于用户会话运行,并且不受“取消关闭”之类的影响。该服务还可以配置为在失败时重新启动服务,或者根据需要重新启动整个计算机。

然后,您可以使用单独的 UI 应用程序来连接和控制服务。这个应用程序只需要在用户真正想做某事时运行,并且可以自由关闭而不影响后台工作。如果它因任何原因关闭,用户只需重新启动它,就像所有其他应用程序一样。

使用您最喜欢的进程间通信协议类型使这两个组件相互通信。

这种模式对于面向服务器的软件(例如数据库)很常见。实际的数据库作为服务运行,管理工具作为常规应用程序运行。

© www.soinside.com 2019 - 2024. All rights reserved.