我有一个 C# WPF 应用程序,它将作为后台进程运行。要求是,它必须在后台持续运行。但在以下情况下会失败:
用户点击关闭,但由于其他应用程序(例如记事本等)中的一些未保存的更改,关闭被停止并且用户取消关闭。现在我的应用程序不再运行。
我尝试了以下步骤,但没有成功:
1)在
SystemEvents_SessionEnding
我尝试运行一个.bat文件,该文件将在5分钟延迟后启动我的应用程序。
两者都是失败的。请在这里帮助我。
您可能应该将您的申请分成两部分
完成所有实际工作的部分应该作为服务运行。这使得它独立于用户会话运行,并且不受“取消关闭”之类的影响。该服务还可以配置为在失败时重新启动服务,或者根据需要重新启动整个计算机。
然后,您可以使用单独的 UI 应用程序来连接和控制服务。这个应用程序只需要在用户真正想做某事时运行,并且可以自由关闭而不影响后台工作。如果它因任何原因关闭,用户只需重新启动它,就像所有其他应用程序一样。
使用您最喜欢的进程间通信协议类型使这两个组件相互通信。
这种模式对于面向服务器的软件(例如数据库)很常见。实际的数据库作为服务运行,管理工具作为常规应用程序运行。