因此,这里是我的问题,我需要做一个C#服务谁是在凌晨3点获取文件上的FTP每天一次的服务器上运行。 我想,我可以用Thread.sleep()方法或通过与凌晨3点比较DateTime.Now做到这一点....
你有更好的解决办法?
非常感谢您的帮助!
因此,这里是我的问题,我需要做一个C#服务谁是在凌晨3点获取文件上的FTP每天一次的服务器上运行。 我想,我可以用Thread.sleep()方法或通过与凌晨3点比较DateTime.Now做到这一点....
你有更好的解决办法?
非常感谢您的帮助!
更好的解决方案,让您的窗户使用做计划任务 。
如果只需要每天一次要执行的话,我会去这一点。 即使谷歌做它;)
编辑:
要回答的评论,它是作为弗雷德里克说。 这是一个高级选项,其中的任务设置,包含了一个名为复选框可以打开:“ Run only if logged on
”,这是错误的开始。
写一个控制台应用程序或同等学历,并使用Windows调度程序(或任何它被称为时下...)每天运行它。
对于一个灵活的解决方案,你可以使用这个 。 这不是一个Windows服务,但你可以很容易地将其纳入一个。 或者你可以考虑Quartz.NET它被誉为是工业实力(Java版本肯定是)。
我已经成功地使用计划任务进行备份,但我有一个忠告...
如果注销不执行计划任务。 我不知道这是否可以被覆盖,但我一直在通过不执行的任务抓出来,因为Windows自动更新,重新启动,并坐在等着我登录项。
我禁用自动更新 - Windows应先问清楚。
另外一个考虑是凌晨3点的时候很多用户通常会被注销。
其他的答案是好的。 我想我要指出的是,
比较凌晨3点的DateTime.Now
是一个坏的解决方案,即使你的睡眠对每个检查之间的一段时间,因为它浪费不必要的系统资源(不仅是在反复检查的时间,而且在程序的内存使用情况)。
如果你每天晚上期待,而不是担心它到达一个文件时,只得到当它触发的事件。
看着:
System.IO.FileSystemWatcher
MSDN上文件系统观察
为什么不设置此为计划任务运行。 有它执行,然后退出。 设置Windows日常启动过程作为计划任务在凌晨3:00。
System.Threading.Timer
可能制定出适合您。
这里记录