我有一个应用程序,可以在没有互联网连接的情况下在预配置的计算机上为学生进行交互式考试。该应用程序在考试期间记录用户输入、系统指标等,并采用增量方法保存这些数据,以便突然崩溃或断电不会破坏整个考试的会话数据。
该应用程序每秒将数据序列化为带有时间戳的新文件,并在会话结束时将所有内容编译在一起以将其标记为 ATOMIC 事务。这工作正常。
我想要做的是让应用程序在响应意外情况时更加健壮,例如由 UPS 触发的关机启动、用户自己不小心踢掉电源按钮(它发生了)等。当然我知道没有太多可以如果操作系统崩溃或电源线中断,请执行此操作。
我正在寻找的是:
- 要订阅的事件的完整列表,例如关机启动、对笔记本电脑至关重要的电池电量等。
- 如何在 .NET 4(任何语言)下订阅这些事件。