【发布时间】:2016-03-31 13:46:16
【问题描述】:
如果程序意外退出(异常退出或进程终止)会怎样?是否存在类似(或其他)程序将终止的情况,但 IDisposable 对象不会被正确处理?
我问的原因是因为我正在编写将与外围设备通信的代码,并且我想确保它不会处于不良状态。
【问题讨论】:
-
您所说的“关闭”具体是什么意思?你的意思是如果电源关闭或抛出未处理的异常?
-
异常。我知道如果电源关闭(无论如何外围设备将在这种情况下重置),则无法采取任何合理的措施。我会更新问题。
-
@cFrozenDeath 另外,我的意思是当操作系统(或用户)终止进程时。
-
根据 Unix 系统的定义,当进程收到终止信号时,它会立即被终止,没有任何清理机会,因此肯定是的。
-
如果外围设备是某种设备并且其状态非常重要,您几乎需要编写操作系统驱动程序。程序总是死掉。它们可能会出现卡住并被用户杀死。或者死于内存不足错误。
标签: c# .net garbage-collection dispose terminate