当前位置:
首页 > temp > 简明python教程 >
-
Quartz 计时器使用之 给主线程窗体控件赋值方法
最近在写一个导入工具时用到了一个新的东西Quartz 计时器 ,timer有的Quartz 基本都有,所以用Quartz 来写了下代码,并记录。
1、首先需要引用GuGet程序包,搜索' quartz ' ,下载安装到程序。
2、直接上代码,创建job,trigger等方法
job传参: job.JobDataMap.Put("AutoImport", formInstance); ,我这里'AutoImport' 是一个主窗体的实例
// 1.创建scheduler的引用 ISchedulerFactory schedFact = new StdSchedulerFactory(); sched = await schedFact.GetScheduler(); //2.启动 scheduler await sched.Start(); // 3.创建 job IJobDetail job = JobBuilder.Create<DoWork>() .WithIdentity("job5", "group5") .Build(); job.JobDataMap.Put("AutoImport", formInstance); //job传参 // 4.创建 trigger ITrigger trigger = TriggerBuilder.Create() .WithIdentity("trigger5", "group5") .StartAt(DateTime.Parse(startime)) .WithSimpleSchedule(x => x .WithIntervalInMinutes(int.Parse(jiange)) //下次执行时间的 时间 .RepeatForever()) //永远执行 .Build(); // 5.使用trigger规划执行任务job await sched.ScheduleJob(job, trigger);
3、执行job里的方法,获取job传来的主窗体实例,通过实例修改控件的值。
public class DoWork : IJob { public virtual async Task Execute(IJobExecutionContext context) { AutoImport au = (AutoImport)context.JobDetail.JobDataMap.Get("AutoImport"); //获取job传来的参数 //修改主窗体中控件的值 au.datetime_startime.Value = DateTime.Parse(nexttime); au.lab_msg.Text = "等待下次启动时间..." + nexttime; await Task.CompletedTask;
}
}
这样就解决了修改主窗体控件值的问题了。
有关 Quartz 的其他方法,兄弟儿们可以自行百度啦,大把大把的资料demo供你学习!!
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数