我有一个应用程序,可以在没有互联网连接的情况下在预先配置的计算机上为学生进行交互式考试。该应用程序在考试期间记录用户输入、系统指标等,并采用增量方法保存这些数据,以便突然崩溃或断电不会破坏整个考试的 session 数据。
该应用程序每秒将数据序列化到一个带有时间戳的新文件,并在 session 结束时将所有内容编译在一起,将其标记为原子事务。这工作得很好。
我想做的是让应用程序在响应意外情况时更加稳健,例如 UPS 触发的关机启动、用户自己不小心踢断电源按钮(这种情况发生了)等。当然我理解这一点如果操作系统崩溃或电源线中断,我们无能为力。
我正在寻找的是:
- 要订阅的事件的完整列表,例如关机启动、笔记本电脑的关键电池电量等。
- 如何在 .NET 4(任何语言)下订阅这些事件。
最佳答案
断电后你什么也做不了。 Application.UnhandledException 和 Close 将捕获您有模糊机会处理的任何内容,其中包括来自即将耗尽的电池或启动的 UPS 的关闭信号。
关于c# - 准备一个实时应用程序来保存不可预见事件的状态数据,例如意外关闭、崩溃等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10470367/