Windows 需要帮助编写定期任务计划程序吗

Windows 需要帮助编写定期任务计划程序吗,windows,service,scheduling,Windows,Service,Scheduling,我需要写一个工具,将运行一个用户可配置的时间表定期任务。我将用C#3.5编写它,它将在XP、Windows7或WindowsServer2008上运行。完成这些任务大约需要20分钟。用户可能需要设置几种配置:例如,每日、每周和每月周期。使用任务计划程序不是一个选项 用户将通过类似于Outlook的“定期约会”对话框的界面安排定期约会。一旦他们设置了时间表,他们就会启动它,它应该放在系统托盘中,在指定的时间开始它的任务,然后发送邮件表明它已经完成 写这篇文章的最佳方式是什么,这样它就不会占用资源、

我需要写一个工具,将运行一个用户可配置的时间表定期任务。我将用C#3.5编写它,它将在XP、Windows7或WindowsServer2008上运行。完成这些任务大约需要20分钟。用户可能需要设置几种配置:例如,每日、每周和每月周期。使用任务计划程序不是一个选项

用户将通过类似于Outlook的“定期约会”对话框的界面安排定期约会。一旦他们设置了时间表,他们就会启动它,它应该放在系统托盘中,在指定的时间开始它的任务,然后发送邮件表明它已经完成


写这篇文章的最佳方式是什么,这样它就不会占用资源、锁定主机或出现其他不当行为?

最好的办法是利用操作系统提供的功能,避免重新发明轮子。请参阅Bart De Smet的文章,以了解C#中windows任务调度程序的具体用法


如果出于某种原因,您必须实现自己的服务(例如,更好地控制依赖关系),我将介绍一些使用.NET兼容语言的开源Cron实现。有一篇文章的代码是关于名为的代码项目的,它似乎可以做到这一点。根据他的文章,看起来鲍勃·克雷文斯在这方面做了一些更彻底的工作,或者至少更彻底地记录了他的工作。如果你环顾四周,我肯定还有其他的,基于Cron的东西是一个很好的起点。

我建议编写一个Windows服务,使用SQlite db来获取时间表和数据 添加一个GUI,将您需要的任何内容写入数据库,但请记住使用

System.Timers.Timer 
而不是

System.Windows.Forms.Timer

在您的Windows服务中

非常好!正是我想要的