例如我要开发一个闹钟,用户自己设定闹铃方案,比如每个工作日的早上6点,到这个点闹铃就响铃.
怎样思路呢?
是要开一个线程,一直在判断 DateTime.Now==SetTime 吗?
还是有其他机制?c#定时

解决方案 »

  1.   

    开一个线程或用timer控件都可以
      

  2.   

    你这个timer 就够了,或者就直接做个exe,启动就响,然后做个windows的计划任务,到点执行你的exe
      

  3.   

    哦.哪种方法会更优化更好呢?
    另外有没有可能像windows事件处理机制一样,把这个弄成个事件...(初学者乱想,勿喷)
      

  4.   

    先把时间拆分为 
    日期 小时 分新建个Timer。
    Timer1 在程序启动的时候执行,
    判断当前日期是否是工作日,用 DateTime的DayOfWeek
    如果不是,判断最近一个工作日的日期
    然后用这个日期加上定时的时间的小时数,比如六点
    如果是,当前日期加上定时的时间的小时数然后判断当前时间和计算后的时间它们的时间差换算成毫秒
    修改Timer1的间隔为刚刚的计算的毫秒数,重新启动Timer1.
    然后判断定时时间是否是6点整,是就响铃
    不是就计算当前时间与定时时间分钟数的时间差。
    修改Timer1的间隔为刚刚的计算的毫秒数,重新启动Timer1.
    到了响铃。
    然后恢复为程序启动状态,进行下一次任务。你也可以直接计算与分钟数的时间差,一次就执行。
    先小时再分钟只是为了减少误差
      

  5.   


    就是说timer.interval=闹钟时刻-datetime.now   对吧?