如何在C#服务在同一时刻执行代码每天一次?(How to execute code in c# se

2019-07-04 14:38发布

因此,这里是我的问题,我需要做一个C#服务谁是在凌晨3点获取文件上的FTP每天一次的服务器上运行。 我想,我可以用Thread.sleep()方法或通过与凌晨3点比较DateTime.Now做到这一点....

你有更好的解决办法?

非常感谢您的帮助!

Answer 1:

更好的解决方案,让您的窗户使用做计划任务 。

如果只需要每天一次要执行的话,我会去这一点。 即使谷歌做它;)

编辑:

要回答的评论,它是作为弗雷德里克说。 这是一个高级选项,其中的任务设置,包含了一个名为复选框可以打开:“ Run only if logged on ”,这是错误的开始。



Answer 2:

写一个控制台应用程序或同等学历,并使用Windows调度程序(或任何它被称为时下...)每天运行它。



Answer 3:

对于一个灵活的解决方案,你可以使用这个 。 这不是一个Windows服务,但你可以很容易地将其纳入一个。 或者你可以考虑Quartz.NET它被誉为是工业实力(Java版本肯定是)。



Answer 4:

我已经成功地使用计划任务进行备份,但我有一个忠告...

如果注销不执行计划任务。 我不知道这是否可以被覆盖,但我一直在通过不执行的任务抓出来,因为Windows自动更新,重新启动,并坐在等着我登录项。

我禁用自动更新 - Windows应先问清楚。

另外一个考虑是凌晨3点的时候很多用户通常会被注销。



Answer 5:

其他的答案是好的。 我想我要指出的是,

比较凌晨3点的DateTime.Now

是一个坏的解决方案,即使你的睡眠对每个检查之间的一段时间,因为它浪费不必要的系统资源(不仅是在反复检查的时间,而且在程序的内存使用情况)。



Answer 6:

如果你每天晚上期待,而不是担心它到达一个文件时,只得到当它触发的事件。

看着:

System.IO.FileSystemWatcher

MSDN上文件系统观察



Answer 7:

为什么不设置此为计划任务运行。 有它执行,然后退出。 设置Windows日常启动过程作为计划任务在凌晨3:00。



Answer 8:

System.Threading.Timer可能制定出适合您。

这里记录



文章来源: How to execute code in c# service one time per day at the same hour?