对于我正在做的备份程序,我已经完成了 GUI。现在我想做功能需求。每个备份都可以有时间表。有像每周日或周一这样的预定义设置,但用户也可以指定自己的时间表。
因为我从来没有做过这样的事情,所以我想知道每隔 x 小时或几天运行一次备份的好方法是什么。我正在考虑使用线程或编写服务,但这两个领域对我来说都是全新的。这里最好的方法是什么?
对于我正在做的备份程序,我已经完成了 GUI。现在我想做功能需求。每个备份都可以有时间表。有像每周日或周一这样的预定义设置,但用户也可以指定自己的时间表。
因为我从来没有做过这样的事情,所以我想知道每隔 x 小时或几天运行一次备份的好方法是什么。我正在考虑使用线程或编写服务,但这两个领域对我来说都是全新的。这里最好的方法是什么?
如果线程开发和服务开发都是全新的,那么我认为您将很难以一种有用的方式实现它。即使是这样...
调度程序类型的应用程序最好作为服务运行,否则您需要用户登录才能运行应用程序。服务独立于正在登录的用户运行。
然而,正因为如此,服务没有用户界面,所以你的 GUI 需要将调度的详细信息打包到某个配置文件中,然后向服务发出信号以重新加载该配置文件,以便服务知道什么做以及何时做。
该服务通常会生成一个工作线程来完成几乎所有工作,并且该工作线程需要能够响应正在关闭的服务(继续阅读AutoResetEvent
以了解如何跨线程完成此操作)。然后线程将等到某个事件或适当的时间到达,然后做它必须做的任何事情。
这些实际上并不复杂,但我建议您先深入研究多线程编程。
我同意 ColinM,服务最适合调度程序类型的应用程序。您必须将服务与应用程序结合起来以按计划的时间间隔运行您的代码。有关更多详细信息,请参阅文章 - http://msdn.microsoft.com/en-us/magazine/cc163821.aspx