我正在寻找一个C#库,最好是开源的,它可以让我以相当大的灵活性安排任务.具体来说,我应该能够安排每N个单位时间运行的事情以及"XXXX时间的每个工作日"或"XXXX时间的每个星期一".比这更多的功能会很好,但不是必需的.这是我想在Azure WorkerRole中使用的,它立即排除Windows计划任务,"at","Cron"以及需要安装和/或GUI操作的任何第三方应用程序.我正在寻找一个图书馆.
http://quartznet.sourceforge.net/
"Quartz.NET是一个非常有道理的(原文!)开源Java作业调度框架的端口,Quartz."
PS:明智的话,不要试图在工作时导航到quartz.net ;-)
我在Java时代使用了Quartz,效果很好.我现在正在使用它来进行一些.Net的工作,它的工作效果更好(当然,它有很多年才能实现稳定).所以我当然是第二个建议.
你应该看到的另一件有趣的事情,我刚刚开始使用的是.Net 4.0中新的System.Threading.Tasks.我刚刚使用任务来并行化工作,它充分利用了多核/处理器.我注意到有一个名为TaskScheduler的类,我没有详细查看它,但它有QueueTask,DeQueTask等方法.至少可能值得一些调查.
请参阅Codeproject上的.NET新任务计划程序类库.
我在这个问题中读到了Quartz 如何安排C#Windows服务每天执行一项任务?.它是一个C#库,允许灵活的调度.