我将此代码用于C#服务,“SomeFuction”应该每6分钟运行一次,但是在30分钟后它会停止运行。
我在这里缺少什么?我想让它运行直到我的服务运行,请帮助:(
var timer = new System.Threading.Timer((e) =>
{
try
{ SomeFunction(arg1, arg2, arg3); }
catch
{ return;}
}, null, 0, 360000);
答案 0 :(得分:2)
Timer
可能导致GarbageCollector
被处置?您似乎只在本地范围中声明了持有Timer-Reference的变量。
要防止GarbageCollection,请确保Timer-Reference存储在服务的整个生命周期中存在的Object中。
有关类似问题,请参阅此帖:Why does System.Threading.Timer stop on its own?
答案 1 :(得分:-2)
代码的其余部分是什么样的? Timer对象是否超出范围?