Фантомный клик в datagridview при использовании Quartz.net

120
17 апреля 2022, 22:40

Есть datagridview. В последних колонках DataGridViewButtonColumn. При нажатии запускаю таску. Всё работает. Каждые 60 сек запускается задача. Однако, каждую минуту также система кликает на datagridview. Как будто вместе с задачей запускается клик. Не пойму где собака зарыта

public Form1()
{
     InitializeComponent();
     scheduler = factory.GetScheduler().Result;
     scheduler.Start().Wait();
}
 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0)
    {
        if (e.ColumnIndex == this.btncolumn.Index)
        {
            var data = db.Table<DB>().Where(x => x.Id == id).First();
            var id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
            AddJob(id.ToString(), data.Login, data.Password, data.Provider);
        }
        
    }
} 
 public void AddJob(string jobname, string login, string password, string provider)
    {
        HelloJob.CurrentForm = this;
                
    
        IJobDetail job = JobBuilder.Create<HelloJob>()
            .WithIdentity(jobname, "group1")
            .UsingJobData("login", login)
            .UsingJobData("password", password)
            .UsingJobData("provider", provider)
            .Build();
    
        ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity(jobname, "group1")
            .StartNow()
            .WithSimpleSchedule(x => x
            .WithIntervalInSeconds(60)
            .RepeatForever())
            .Build();
    
            _ = scheduler.ScheduleJob(job, trigger).Result;
    
            Thread.Sleep(1000);
    }
public class HelloJob : IJob
    {
        public HelloJob()
        {
        }
        public string GetBalance(string login, string password, string provider)
        {   
            return "0";
        }
        public static Form1 CurrentForm = null;
        public async Task Execute(IJobExecutionContext context)
        {
            JobDataMap dataMap = context.JobDetail.JobDataMap;
            var login = dataMap.GetString("login").ToString();
            var password= dataMap.GetString("password").ToString();
            var provider = dataMap.GetString("provider").ToString();
            var balance = GetBalance(login, password, provider);
            if (CurrentForm.InvokeRequired)
            {
                Form1.ExecuteCallback x = new Form1.ExecuteCallback(CurrentForm.Execute);
                x(balance, login);
                CurrentForm.Invoke(x);
                CurrentForm.Execute(balance, login);
            }
            else
            {
                CurrentForm.Execute(balance, login);
            }
        }
    }
READ ALSO
Как сделать редирект запуска приложения Steam на определенное приложение

Как сделать редирект запуска приложения Steam на определенное приложение

В общем, задача такаяПри нажатии на ярлык стимовской игры steam://run/12345 нужно сделать чтобы включался Steam собственно и после запускалось другое...

227
Обработка ошибок во всём классе

Обработка ошибок во всём классе

Идея для проекта-чат_бота следующая: Создать несколько классов-модулей, которые не зависят друг от друга (по типу один для обработки команд,...

150
Почему System range нету в .net frimework 4.8

Почему System range нету в .net frimework 4.8

В ссылках попросту нету SystemRange

209
Как отрисовать линию на матрице

Как отрисовать линию на матрице

Имеется матрица 20x20Необходимо отрисовать растровую линию от точки x1 до точки x2

195