如何在时钟时间制作一些活动?

时间:2013-10-30 09:53:19

标签: c# time scheduler clock alarm

我的意思是我想做点什么:例如明天早上6点(基于时钟的事件)

目前,我看到的唯一变体是TimpeStamp

启动FutureTime - Now的新计时器

但是这个解决方案看起来很难看,特别是当我有很多事件时,它会迫使我有很多计时器或以某种方式使计时器进程接近事件,然后重新计算等待下一个事件的时间。每当我将新事件推送到事件集合时重新计算。

与我的解决方案相比,只是问一下是否有更健全的东西?或者,如果已经有一些免费使用的lib了。

2 个答案:

答案 0 :(得分:1)

最好使用Windows任务计划程序。

请参阅此处了解详情:Creating Scheduled Tasks

答案 1 :(得分:1)

您可以创建1个计时器来执行每x秒并迭代一系列事件并检查是否需要执行。

如果事件必须执行,则在单独的线程上执行它以确保它不会中断定时器线程。

事件类

class Event
{
    DateTime TargetDate;
    bool Completed = false;
    IExecuter Executer;
}

IExecuter接口

interface IExecuter
{
    void Execute();
}

示例IExecuter实施

class LogEvent : IExecuter
{
    void Execute(){
         // Log event details to DB or Console or whatever
    }
}

样本定时器循环

foreach (Event e in eventArr)
{
    if(e.TargetDate == DateTime.Now && !e.Completed)
        e.Executer.Execute();
}