将初始小时设置为计时器组件

时间:2014-12-24 18:15:39

标签: c# time timer hour

我正在做一个C#应用程序,我需要使用基于小时的组件Timer。我想知道的是,是否可以为它设定一个开始时间。例如,我希望它在早上8点开始吃,并且一整天都在工作。

2 个答案:

答案 0 :(得分:5)

只需计算下一小时的间隔时间。例如:

    private void SetTimer() {
        var now = DateTime.Now;
        var next = now.Date.AddHours(now.Hour + 1);
        var msec = (next - now).TotalMilliseconds;
        timer1.Interval = (int)msec;
        timer1.Enabled = true;
    }

    private void timer1_Tick(object sender, EventArgs e) {
        SetTimer();
        // etc...
    }

调用SetTimer()启动它。

答案 1 :(得分:0)

计时器仅根据间隔触发事件。如果将间隔设置为一小时,那么每小时都会有一个事件。

时钟组件会有一个计时器。时钟组件将具有时钟初始时间的所有逻辑。它会使用计时器知道何时过去了一小时。