Windows Service中OnStart方法中的计时器

时间:2018-11-16 08:33:32

标签: c# windows service

我已经在C#中创建了Windows服务,并创建了系统计时器,并在OnStart()方法中启动了它。当我在PC中上传服务时出现问题。我确实调试了它,所以问题是当OnStart方法启动计时器时,计时器中任何方法(DBinsert方法)中的所有代码都将继续无穷大(第1行,第2行,.....第15行,然后再次进入第1行..)如何我解决了吗?

closedir

1 个答案:

答案 0 :(得分:1)

我将其发布为答案,以便我可以发布一些代码。如果您不熟悉,这就是我在评论中提到条件编译时的意思:

    private void tmr_Elapsed(object sender, ElapsedEventArgs e)
    {
#if DEBUG
        tmr.Stop();
#endif
        DBconnection.DBinsert();
#if DEBUG
        tmr.Start();
#endif
    }

请注意,即使您不调试该事件处理程序,它仍然会停止并启动Timer,因此这意味着您的时间间隔实际上会比5秒长一点,但是我对此表示怀疑太大了。您随时可以在Debug中将Interval中的Timer设置为稍小的值,以在需要时进行补偿。