1

我创建了一个 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;
    }
4

3 回答 3

5

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

于 2014-07-02T23:57:11.600 回答
0

所以,关于你的帖子有几点:

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

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

如果你想超过25天,又不关心线程安全,建议你去System.Threading.Timer。

更多信息在这里

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

于 2013-08-29T06:48:07.487 回答
0

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

var totalMilliSecondsPerDay = TimeSpan.FromDays(1).TotalMilliseconds;
var timer = new Timer(totalMilliSecondsPerDay);
于 2018-01-15T09:52:28.777 回答