一段时间后C#Timer停止了

时间:2016-08-17 21:00:49

标签: c#

我将此代码用于C#服务,“SomeFuction”应该每6分钟运行一次,但是在30分钟后它会停止运行。

我在这里缺少什么?我想让它运行直到我的服务运行,请帮助:(

var timer = new System.Threading.Timer((e) =>
        {
            try
            { SomeFunction(arg1, arg2, arg3); }
            catch
            { return;}

        }, null, 0, 360000);

2 个答案:

答案 0 :(得分:2)

Timer可能导致GarbageCollector被处置?您似乎只在本地范围中声明了持有Timer-Reference的变量

要防止GarbageCollection,请确保Timer-Reference存储在服务的整个生命周期中存在的Object中。

有关类似问题,请参阅此帖:Why does System.Threading.Timer stop on its own?

答案 1 :(得分:-2)

代码的其余部分是什么样的? Timer对象是否超出范围?