关于C#定时器的问题。

示申○言舌 2018-07-18 04:22:14
有个需求,就是每天定时执行某个东东,时间可以客户修改。
比如我设定 每天8点10分(8:10)去执行,那么就8:10分触发,使用System.Threading.Timer实现。其实可以理解为闹钟。
我现在的问题是,不知道如何去计算Timer里面的dueTimer值。
要求是:
如果客户设置的时间大于当前时间,那么从今天开始就执行。如果客户设置的时间小于当前的时间,就是说今天已经错过了执行时间,那么从次日开始执行。。

如何计算捏??搞了几次就绕晕了。。
...全文
164 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhhhha123 2018-07-18
  • 打赏
  • 举报
回复
比对下时间大小不就行了?
  • 打赏
  • 举报
回复
在设置完毕、执行定时判断时,如果目标时间距离现在超过(比如说)10分钟,那么你可以设置 timer 为10分钟之后开始处理;否则如果小于10分钟则设置准确时间开始处理。当 timer 事件发生时,如果当前时间等于或者大于目标时间,则处理一次业务;如果当前时间还没有达到目标时间,则回到开头的逻辑,重新弄设置 timer 定时时间重新定时。

在交互界面设置时,你可以在判断所谓的客户设置时间是否小当前时间,并且自动改变定时目标时间。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧