C# 使用quartz将行添加到数据网格
我尝试使用以下代码使用quartz向datagrid添加一行。但在约定的时间什么也没发生。如何与Quartz中的Windows窗体控件交互C# 使用quartz将行添加到数据网格,c#,quartz-scheduler,quartz,C#,Quartz Scheduler,Quartz,我尝试使用以下代码使用quartz向datagrid添加一行。但在约定的时间什么也没发生。如何与Quartz中的Windows窗体控件交互 public class HelloJob : IJob { Form1 frm = new Form1(); public async Task Execute(IJobExecutionContext context) { await Task.Run(() => {
public class HelloJob : IJob
{
Form1 frm = new Form1();
public async Task Execute(IJobExecutionContext context)
{
await Task.Run(() =>
{
frm.dataGridView1.Rows.Add(DateTime.Now.ToString("hh:mm:ss.fff"));
});
}
}
private async void button1_Click(object sender, EventArgs e)
{
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(DateTime.Today.Add(new TimeSpan(18, 00, 00)))
.WithSimpleSchedule(x => x
.WithInterval(TimeSpan.FromMilliseconds(50))
.WithRepeatCount(30))
.Build();
await scheduler.ScheduleJob(job, trigger);
await Task.Delay(TimeSpan.FromSeconds(30));
await scheduler.Shutdown();
Form1 frm = new Form1();
frm.textBox1.Text = "Finish";
}
公共类HelloJob:IJob
{
Form1 frm=新Form1();
公共异步任务执行(IJobExecutionContext上下文)
{
等待任务。运行(()=>
{
frm.dataGridView1.Rows.Add(DateTime.Now.ToString(“hh:mm:ss.fff”);
});
}
}
私有异步无效按钮1\u单击(对象发送方,事件参数e)
{
StdSchedulerFactory=新StdSchedulerFactory();
isScheduler scheduler=wait factory.GetScheduler();
wait scheduler.Start();
IJobDetail job=JobBuilder.Create()
.WithIdentity(“工作1”、“组1”)
.Build();
ITrigger trigger=TriggerBuilder.Create()
.WithIdentity(“触发器1”、“组1”)
.StartAt(DateTime.Today.Add(新的时间跨度(18,00,00)))
.使用SimpleSchedule(x=>x
.WithInterval(时间跨度从毫秒(50))
.带重复计数(30))
.Build();
wait scheduler.ScheduleJob(作业,触发器);
等待任务延迟(时间跨度从秒(30));
wait scheduler.Shutdown();
Form1 frm=新Form1();
frm.textBox1.Text=“完成”;
}