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)

 

 

 

 

 

posted @ 2023-02-07 14:46  园友2288976  阅读(374)  评论(0编辑  收藏  举报