繁体   English   中英

如何在Windows服务中设置一天的计时器间隔

[英]how to set the timer interval for one day in a windows service

我创建了一个Windows服务,其中我设置了每分钟的计时器间隔,因此每分钟都会触发一次。 但是我需要每天触发一次。

您可以在下面的代码中找到我在OnStart()方法中设置计时器间隔的位置。

码:

    protected override void OnStart(string[] args)
    {
        TraceService("start service");

        //handle Elapsed event
        timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);

        //This statement is used to set interval to 1 minute (= 60,000 milliseconds)

        timer.Interval = 86400000;

        //enabling the timer
        timer.Enabled = true;
    }

这篇文章很老了,但我认为值得一提的是,与其使用像86400000这样的魔术数字,不如使用诸如new TimeSpan(1,0,0,0).TotalMilliseconds之类的东西,这样一来,如果有人需要更改它,知道应该更改什么。

因此,关于您的帖子的几件事:

首先,它没有说明问题所在!

从技术上讲,计时器支持大约25天的计时器间隔。 因此,您的代码应该可以工作。

如果您希望超过25天并且不担心线程安全,建议您转到System.Threading.Timer。

更多信息在这里

因为,您的服务作为基于Windows的服务运行,所以我建议您转到System.Threading.Timer。

现在,在C#中,您可以使用TimeSpan类获取一天中的总毫秒数,以设置每天的计时器。

var totalMilliSecondsPerDay = TimeSpan.FromDays(1).TotalMilliseconds;
var timer = new Timer(totalMilliSecondsPerDay);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM