異步操作及定時任務框架quzrtz在donet平臺的使用

1、引入quartz.net 包

2、因爲不想使用配置文件的方式,單獨增加了一個quartz服務類

class QuartzServer
    {
        public static void ExecuteInterval<T>(int seconds) where T : IJob
        {
            ISchedulerFactory factory = new StdSchedulerFactory();
            IScheduler scheduler = factory.GetScheduler();
            IJobDetail job = JobBuilder.Create<T>().Build();

            ITrigger trigger = TriggerBuilder.Create().StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(seconds).RepeatForever()).Build();
            scheduler.ScheduleJob(job, trigger);
            scheduler.Start();
        }

        public static IScheduler  getScheduler<T>(int seconds) where T : IJob
        {
            ISchedulerFactory factory = new StdSchedulerFactory();
            IScheduler scheduler = factory.GetScheduler();
            IJobDetail job = JobBuilder.Create<T>().Build();
            ITrigger trigger = TriggerBuilder.Create().StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(seconds).RepeatForever()).Build();
            scheduler.ScheduleJob(job, trigger);
            return scheduler;
    }


        public static void ExecuteByCron<T>(string cronExpression) where T : IJob
        {
            ISchedulerFactory factory = new StdSchedulerFactory();
            IScheduler scheduler = factory.GetScheduler();
            IJobDetail job = JobBuilder.Create<T>().Build();
            ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create().WithCronSchedule(cronExpression).Build();
            scheduler.ScheduleJob(job, trigger);
            scheduler.Start();

        }

 3、具體使用

開啓

            stockUpdateJob= QuartzServer.getScheduler<StockUpdateJob>(10);
            stockUpdateJob.Start();

 關閉

  stockUpdateJob.Shutdown(true);

 

 

 

 

 

.net中異步操作更改主界面控件信息

             System.Timers.Timer sysTimer = new System.Timers.Timer(30000);
            sysTimer.Elapsed += SysTimer_Elapsed;
            sysTimer.Enabled = true;

 

        private void SysTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            this.checkState();
        }

 

 

 

ComboBox 動態遍歷 枚舉,動態添加item到comboBox中。

 Type type = typeof(BusinessEnum);
            foreach (var x in type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static))
            {
                BusinessEnum item = (BusinessEnum)x.GetValue(null);
                string desc= EnumUtil.description(item);
                cbFuncType.Items.Add(new DictionaryEntry(item, desc));
            }
            cbFuncType.DisplayMember = "Value";
            cbFuncType.ValueMember = "Key";
        

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章