我对长寿计划及其成员有疑问
我注意到在一个长期的生活程序中,一些具有事件或Timers.Timer
等功能的对象在一段时间后停止工作(可能是几天或几周),而lifeTime为null意味着它们没有租约。
你有没有注意到,你是否都在长寿?
更新
抱歉,而不是他们的。但是长期生活程序我的意思是Windows服务和在计算机上运行的程序启动并运行直到计算机关闭。
答案 0 :(得分:2)
没有。我没注意到他们停止工作了。
要检查的事项:
您是否在不记录或处理异常的情况下捕获异常?重构。
你有内存泄漏吗?典型的错误是订阅短期对象的事件但忘记取消订阅。这意味着对象将继续存在,因为事件订阅者具有对它的引用。
答案 1 :(得分:2)
对于计时器,我的猜测是你没有保留对它们的引用,而且它们正在被垃圾收集。 System.Timers.Timer
的文档没有明确地提及这一点,但它们确实给出了一个问题的例子。