C# 在不同计时器上运行任务的windows服务

C# 在不同计时器上运行任务的windows服务,c#,windows,service,C#,Windows,Service,我有一个windows服务,我需要做两件事,每15分钟一件,每天一件。用2个计时器,比如我下面的计时器,这样做有效吗 protected override void OnStart(string[] args) { Console.WriteLine("start"); this.regularTimer = new System.Timers.Timer(300000D); this.regularTimer.AutoReset = true; this.reg

我有一个windows服务,我需要做两件事,每15分钟一件,每天一件。用2个计时器,比如我下面的计时器,这样做有效吗

protected override void OnStart(string[] args)
{
    Console.WriteLine("start");
    this.regularTimer = new System.Timers.Timer(300000D);
    this.regularTimer.AutoReset = true;
    this.regularTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.DoRegular);
    this.regularTimer.Start();

    this.longTimer = new System.Timers.Timer(86400000D);
    this.longTimer.AutoReset = true;
    this.longTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.DoLongRunning);
    this.longTimer.Start();
}

“使用2个计时器执行此操作是否有效”是的。您是否考虑过仅使用windows任务计划程序执行此操作?请记住,您的“每天一次”计时器将在每次服务重新启动后的24小时内启动-因此,如果服务连续几天重新启动,但在每天较早的时间重新启动,则可能会将“每天一次”活动的运行延迟数天。我可能会这样做,只是想确认我确实可以在一个服务中同时使用两个计时器。我想把它们分成2个,但更愿意将它们保留在一个服务中,手动设置24小时计时器上的间隔可能更有意义,该计时器计算为最长的me,直到下一个24小时周期。例如,如果计划在每天中午点火,并且服务在上午10点循环,则计时器间隔将设置为2小时。然后,从经过的处理程序中计算到下一个24小时时间点的新间隔,而不是autoreset=true。“使用两个计时器执行此操作是否有效”是的。您是否考虑过仅使用windows任务计划程序执行此操作?请记住,您的“每天一次”计时器将在每次服务重新启动后的24小时内启动-因此,如果服务连续几天重新启动,但在每天较早的时间重新启动,则可能会将“每天一次”活动的运行延迟数天。我可能会这样做,只是想确认我确实可以在一个服务中同时使用两个计时器。我想把它们分成2个,但更愿意将它们保留在一个服务中,手动设置24小时计时器上的间隔可能更有意义,该计时器计算为最长的me,直到下一个24小时周期。例如,如果计划在每天中午点火,并且服务在上午10点循环,则计时器间隔将设置为2小时。然后,从经过的处理程序中计算到下一个24小时时间点的新间隔,而不是autoreset=true。