c# - 准备一个实时应用程序来保存不可预见事件的状态数据,例如意外关闭、崩溃等

标签 c# .net crash shutdown

我有一个应用程序,可以在没有互联网连接的情况下在预先配置的计算机上为学生进行交互式考试。该应用程序在考试期间记录用户输入、系统指标等,并采用增量方法保存这些数据,以便突然崩溃或断电不会破坏整个考试的 session 数据。

该应用程序每秒将数据序列化到一个带有时间戳的新文件,并在 session 结束时将所有内容编译在一起,将其标记为原子事务。这工作得很好。

我想做的是让应用程序在响应意外情况时更加稳健,例如 UPS 触发的关机启动、用户自己不小心踢断电源按钮(这种情况发生了)等。当然我理解这一点如果操作系统崩溃或电源线中断,我们无能为力。

我正在寻找的是:

  • 要订阅的事件的完整列表,例如关机启动、笔记本电脑的关键电池电量等。
  • 如何在 .NET 4(任何语言)下订阅这些事件。

最佳答案

断电后你什么也做不了。 Application.UnhandledException 和 Close 将捕获您有模糊机会处理的任何内容,其中包括来自即将耗尽的电池或启动的 UPS 的关闭信号。

关于c# - 准备一个实时应用程序来保存不可预见事件的状态数据,例如意外关闭、崩溃等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10470367/

相关文章:

.net - 是asp.net和.net框架版本相同?还是asp.net或clr版本都一样?

c# - 亚音速 ORM 体验

ios - 与 NSUserDefaults 和 NSArray 交互时崩溃

objective-c - OS X 应用程序中的 WebCore 崩溃

c# - Moq VerifyNoOtherCalls() 方法的 FakeItEasy 等价物是什么

c# - DataVisualization 设置区域透明度

c# - 将 json null 发送到 Controller 会导致包含 0 个元素的列表

c# - 如何在 C# 中评估 Javascript? (需要获取网页的所有链接,包括 java 脚本生成的链接)

.net - Visual SourceSafe 设置

objective-c - 在哪里寻找错误。文档、应用程序委托(delegate)或两者兼而有之?