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";
        

 

  

posted on 2018-10-23 14:09  falcon_fei  阅读(325)  评论(0编辑  收藏  举报