首页 新闻 会员 周边

c# 关于每隔一个时间段执行某个方法 改为 某个时间点执行某个方法

0
悬赏园豆:5 [已解决问题] 解决于 2017-11-03 09:48

我现在的写法:

我是写在windows服务里,在服务里我用了一个timer,每个12小时执行一次这个方法

 

现在如果改为每天八点执行一次这个方法,同时我又不想把timer设置的间隔太小,怎么保证能在每天八点准时执行这个方法呢?

 

那就应该用不了timer了吧,那用什么东西来通知“已经到八点了,该执行方法”了?

猝不及防的主页 猝不及防 | 老鸟四级 | 园豆:2781
提问于:2017-11-01 17:31
< >
分享
最佳答案
0

timer 设置为10分钟检查一次,看看时间是不是8点。

不用担心性能的。

收获园豆:3
爱编程的大叔 | 高人七级 |园豆:30839 | 2017-11-01 22:46
其他回答(3)
0

你需要 quartz.net

附赠一个 可能用得到的网站 http://cron.qqe2.com/

hahanonym | 园豆:1460 (小虾三级) | 2017-11-01 18:01

有点不想用新的库啊...又得平台兼容性测试啊

支持(0) 反对(0) 猝不及防 | 园豆:2781 (老鸟四级) | 2017-11-01 18:45

@猝不及防: 

while(true)
{

    if(curtime==destTime)
    {
        //Todo
    }
    Thread.sleep(1000);
}

 

支持(0) 反对(0) hahanonym | 园豆:1460 (小虾三级) | 2017-11-02 10:02
1

计算机的一切都是tick,只是tick取决始终频率,你要精确就tick间隔用小,cpu消耗只是你看到的,不一定是真正的消耗(比如指令时间,持续时间...)。

没得准确的说法,你用1s的刻度精确度基本就是±1s。这玩意儿就是每个tick去检测,用jb库,几句代码的事。

收获园豆:2
花飘水流兮 | 园豆:13560 (专家六级) | 2017-11-02 09:03
0

想要时间准,必须要有个被动服务一直观察时间,而且间隔越小越准

虚风客 | 园豆:239 (菜鸟二级) | 2017-11-02 12:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册