|
0
|
| bohdan_trotsenko · 技术社区 · 16 年前 |
|
|
1
2
这个 Quartz.Net library 看来你在找什么。它是一个非常灵活的开源作业调度库,有很好的教程。它似乎也得到了积极的维护(2009年5月的最新版本) 使用这个库,您可以使用各种调度模式调度作业,其中“在一天中的某个时间(到毫秒)”。( see features of quartz.net ) 不过,我不确定它是否能应付待命事件… |
|
|
2
1
您可以尝试捕获Windows睡眠模式事件,以便当Windows进入该模式时,可以将变量设置为当前时间。然后,当Windows唤醒时,使用该变量计算经过的毫秒数,以便将计时器同步到正确的时间。看看这个 link ,它可能会帮助您: |
|
|
3
0
我只需要睡一个较小的时间间隔(比如10秒,无论您想要什么粒度),然后确定是否计划运行队列中的下一个操作(并运行它)。根据检查代码的效率,您可能会发现这样做需要非常少的CPU。 您还将处理时钟更改的其他边缘情况(由用户/时区等重置),这比处理睡眠/唤醒事件复杂得多。 |
|
|
4
0
如果不需要对其进行编码,您可以使用Windows的内置任务执行功能,您可以在控制面板中找到它。不知道确切的标题叫什么…”“计划任务”或…你可以指定一个可执行文件,一个时间点,如果我是对的,你可以指定一些重复。 我一点也不确定这个方法触发事件的精确性… 当我必须实现这种类型的东西时,我使用System.Timers.Timer和TimeSpan(以便定义分辨率)进行了一种方法。这种方法从来不是很精确,但也不是必需的。为了得到更好的结果,也许在启动时,您可以将这个计时器与当前系统时钟同步到一个“整数”,然后,比如,设置一个间隔,每隔15分钟勾选一次…… 当做 |