如何将 quartz 功能添加到 .net 2.0 项目?

How to add quartz functionality to .net 2.0 project?

我有一个针对 .Net 2.0 的单个 winforms 项目的解决方案。我需要项目表单中的一些 quartz 功能,但我无法添加该包,因为它需要更高版本的 .Net。在这种情况下有什么解决方法吗? 编辑:也许还有另一个 .Net 2.0 的调度工具?我只需要在要求的时间执行要求的方法的功能。

您可以通过 .NET Framework 2.0 使用 Quartz 1.0。从 2.0 开始的 Quartz 版本不能与 .NET Framework 2.0 一起使用,并且依赖于 .NET 3.5 的某些功能,而更高版本则依赖于 .Net 4.0。

要在 .NET 2.0 项目中使用 Quartz:

  1. 下载 Quartz 1.0 (or 1.0.1 or 1.0.2 or 1.0.3)
  2. bin.0\Release\Quartz 路径,添加对 Quartz.dllCommon.Logging.dll 的引用。
  3. 像这样写一个示例计划作业:

using System;
using System.ComponentModel;
using System.Windows.Forms;
using Quartz;
using Quartz.Impl;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1() { InitializeComponent(); }
        IScheduler scheduler;
        protected override void OnLoad(EventArgs e)
        {
            ISchedulerFactory schedFact = new StdSchedulerFactory();
            scheduler = schedFact.GetScheduler();
            scheduler.Start();
            JobDetail jobDetail = new JobDetail("SampleJob", null, typeof(SampleJob));
            Trigger trigger = TriggerUtils.MakeSecondlyTrigger(5); //Run every 5 seconds
            trigger.StartTimeUtc = DateTime.UtcNow;
            trigger.Name = "SampleJobTrigger";
            scheduler.ScheduleJob(jobDetail, trigger);
            base.OnLoad(e);
        }
        protected override void OnClosing(CancelEventArgs e)
        {
            scheduler.Shutdown(false);
            base.OnClosing(e);
        }
    }
    public class SampleJob : IJob
    {
        public SampleJob() { }
        public void Execute(JobExecutionContext context)
        {
            MessageBox.Show("DumbJob is executing.");
        }
    }
}

要了解有关 Quartz 的更多信息: