zoukankan      html  css  js  c++  java
  • 异步操作及定时任务框架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";
            

      

  • 相关阅读:
    使用Ruby On Rails建立一个山寨小说站(一)
    sql server 数据库备份概述
    JVM崩溃的原因及解决!
    C++中的字节对齐
    jqueyr用jsonp跨越,有服务器端代码(.net(C#语言))
    lammps_data文件
    jquery日历插件_时间范围_双日历_多日历
    js 判断所选时间(或者当前时间)是否在某一时间段
    webstorm安装时遇到The JVM could not be started的解决方法
    Webstorm快捷键
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/9836317.html
Copyright © 2011-2022 走看看