QuartzNet在winform中使用(目前版本3.6)
界面图"没有什么技术含量~ 不过还是有部分人不太了解的
接下来一一解析下,勿q
使用步骤:
1.初始化帮助类
QuarztHelper x = new QuarztHelper();
2.调用方法
await x.CreateScheduler(this);
x.AddJob<HelloJob>("C", "Q", "触发器名称", "0/1 * * * * ? *");
第一个参数:key值 唯一
第二个参数:分组名称
第三个参数:触发器名称
第四个参数:Cron表达式 (在线Cron表达式生成器 (qqe2.com) 在线生成)
3.继承Ijob接口
public class HelloJob : IJob { private static readonly object _lock = new object(); private static bool _executing = false; Task IJob.Execute(IJobExecutionContext context) { //因为暂停任务, 但是job会累计增加,因此加锁 等待 /如果不需要则取消_Lock锁即可 lock (_lock) { if (_executing) { return Task.CompletedTask; } _executing = true; } try { Form1 form = (Form1)context.Scheduler.Context.Get("form1");//把窗体传参进来 获得f1进行刷新 if (form!=null) { form.RefreshData(); } } finally { _executing = false; } return Task.CompletedTask; } }
第四:绑定gridview
#region 刷新方法 public void RefreshData() { this.Invoke(new Action(() => { Random x = new Random(); dt.Rows.Add(new object[] { x.Next().ToString() }); this.dataGridView1.DataSource = dt; dataGridView1.Refresh(); })); } #endregion
Quartz帮助类:Quartz帮助类 - 22222220 - 博客园 (cnblogs.com)