timer_Elapsed()事件未触发

时间:2016-06-09 11:00:38

标签: c# timer windows-services

我每隔5分钟就在(printf '%s\n' "${arrayN[@]}"|sort -n) 方法处理OnStart()事件检查时在Windows服务中使用Timer。

timer_Elapsed()在5分钟后没有开火/打电话,请纠正我如果我在下面的代码中做错了什么。

timer_Elapsed()

2 个答案:

答案 0 :(得分:3)

我认为这可能是因为你是在一个使用区中进行的。

using (Timer timer = new Timer(30000))  //  (1000 * 5 * 60) for 5 minutes
            {
                timer.Elapsed += timer_Elapsed;
                timer.Start();
                //Console.WriteLine("Timer is started");
                genLogs.WriteErrorLog("Timer is started.");
                //Console.ReadLine();
            } <- Your timer stops existing here

在using块中执行它与说timer.Dispose();它配置了计时器,因此无法调用任何方法。 这应该有效:

Timer timer = new Timer(30000)
timer.Elapsed += timer_Elapsed;
timer.Start();

答案 1 :(得分:2)

处理你的计时器使得无法运行回调。

如果您想要处理它,您必须同步该呼叫。

查看此帖子 - &gt; How do I gracefully stop a System.Threading.Timer?