gpt4 book ai didi

c# - 最后:是否保证在任何情况下都会被调用

转载 作者:行者123 更新时间:2023-11-30 18:07:53 28 4
gpt4 key购买 nike

有没有可能 finally 不会被调用但应用程序仍在运行?

我在那里释放信号量

        finally
{
_semParallelUpdates.Release();
}

害怕失去其中的一些。

最佳答案

只有关键的终结器才有强大的保证,以防万一。您可以继承自 CriticalFinalizerObject SafeHandle得到这种行为。但是,不建议让您的终结器执行除具有强可靠性契约的调用代码之外的任何其他操作。例如,在系统内存不足的情况下,此代码必须能够运行。

只有在您希望确保清除所有未处理的资源的情况下才需要实现关键终结器,即使应用程序域已卸载(因为例如)。请注意,您当然永远无法保证终结器会运行。万一停电,你就倒霉了。如果您需要更多保证,则需要某种可以让您获得这种行为的事务系统(例如数据库)。

关于c# - 最后:是否保证在任何情况下都会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3699373/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com