如何防止应用程序在完成任务之前关闭

本文关键字:完成任务 何防止 应用程序 | 更新日期: 2023-09-27 18:27:49

我在c#中制作了一个Windows控制台应用程序,可以进行一些计算。应用程序窗口对用户不可见,应用程序作为任务运行。

这些计算将保存到数据库中。不幸的是,如果用户在保存数据时(通过关闭计算机)关闭了这个应用程序,而不是所有数据都会被保存,我的计算就没有意义了。

所以我正在寻找一些方法来防止应用程序立即关闭。有办法做到这一点吗?

如何防止应用程序在完成任务之前关闭

我相信你试图解决这里的错误问题。

通过将线程的System.Threading.Thread.IsBackground属性设置为false,最多可以使线程保持应用程序的活动状态。但这远不可靠,因为用户总是能够以你无法控制的方式杀死你的进程(向你的进程发送杀死信号、拔下电源插头等)。

相反,请注意,你说你正在进行一些计算并将其保存在数据库中,如果保存中断,计算"将毫无意义"(据我所知,你的意思是数据库的完整性将受到损害)。这听起来就像是数据库事务的一个用例。

其想法是,您将计算作为单个事务提交,并让数据库管理系统确保每个工作单元的原子性、一致性、隔离性和持久性,并保持数据库的完整性。实现这一点的方法取决于您的DBMS,但核心思想是相同的。