当前位置:编程学习 > C#/ASP.NET >>

定时控制方案,设计思路?

例如我要开发一个闹钟,用户自己设定闹铃方案,比如每个工作日的早上6点,到这个点闹铃就响铃.
怎样思路呢?
是要开一个线程,一直在判断 DateTime.Now==SetTime 吗?
还是有其他机制? c# 定时 --------------------编程问答-------------------- 开一个线程或用timer控件都可以 --------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
开一个线程或用timer控件都可以

这个线程一直在做判断,会不会太浪费资源? --------------------编程问答-------------------- 你这个timer 就够了,或者就直接做个exe,启动就响,然后做个windows的计划任务,到点执行你的exe --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 3 楼 bdmh 的回复:
你这个timer 就够了,或者就直接做个exe,启动就响,然后做个windows的计划任务,到点执行你的exe

哦.哪种方法会更优化更好呢?
另外有没有可能像windows事件处理机制一样,把这个弄成个事件...(初学者乱想,勿喷) --------------------编程问答--------------------
引用 4 楼 hustgonia 的回复:
回复等加分.顺便ob

ob..
玩SC吗? --------------------编程问答-------------------- 继续顶起! --------------------编程问答-------------------- 同求 --------------------编程问答-------------------- 先把时间拆分为 
日期 小时 分

新建个Timer。


Timer1 在程序启动的时候执行,
判断当前日期是否是工作日,用 DateTime的DayOfWeek
如果不是,判断最近一个工作日的日期
然后用这个日期加上定时的时间的小时数,比如六点
如果是,当前日期加上定时的时间的小时数

然后判断当前时间和计算后的时间它们的时间差换算成毫秒
修改Timer1的间隔为刚刚的计算的毫秒数,重新启动Timer1.
然后判断定时时间是否是6点整,是就响铃
不是就计算当前时间与定时时间分钟数的时间差。
修改Timer1的间隔为刚刚的计算的毫秒数,重新启动Timer1.
到了响铃。
然后恢复为程序启动状态,进行下一次任务。

你也可以直接计算与分钟数的时间差,一次就执行。
先小时再分钟只是为了减少误差
--------------------编程问答--------------------
引用 9 楼 kansousama 的回复:
先把时间拆分为 
日期 小时 分

新建个Timer。


Timer1 在程序启动的时候执行,
判断当前日期是否是工作日,用 DateTime的DayOfWeek
如果不是,判断最近一个工作日的日期
然后用这个日期加上定时的时间的小时数,比如六点
如果是,当前日期加上定时的时间的小时数

然后判断当前时间和计算后的时间它们的时间差换算成毫秒
修……


就是说timer.interval=闹钟时刻-datetime.now   对吧? --------------------编程问答--------------------
引用 9 楼 kansousama 的回复:
先把时间拆分为 
日期 小时 分

新建个Timer。


Timer1 在程序启动的时候执行,
判断当前日期是否是工作日,用 DateTime的DayOfWeek
如果不是,判断最近一个工作日的日期
然后用这个日期加上定时的时间的小时数,比如六点
如果是,当前日期加上定时的时间的小时数

然后判断当前时间和计算后的时间它们的时间差换算成毫秒
修……

还有,如果用户有多套闹钟响铃方案呢? --------------------编程问答--------------------
引用 11 楼 cdnkaaka001 的回复:
还有,如果用户有多套闹钟响铃方案呢?

...
当第一次响铃完成以后,直接找最近的未响铃的任务,做时间差
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,