当前位置:  编程技术>.net/c#/asp.net

c#定时运行程序分享(定时程序)

    来源: 互联网  发布时间:2014-10-26

    本文导语:  1)在我们的项目中添加引用文件:TaskSchedulerEngine.dll(dll定义了一个ITask接口,定义了两个方法Initialize和HandleConditionsMetEvent); 2)创建一个定时触发的类:SyncTask.cs(类名自己随便定义),该类必须实现接口 ITask。具体代码如...

1)在我们的项目中添加引用文件:TaskSchedulerEngine.dll(dll定义了一个ITask接口,定义了两个方法Initialize和HandleConditionsMetEvent);

2)创建一个定时触发的类:SyncTask.cs(类名自己随便定义),该类必须实现接口 ITask。具体代码如下:

代码如下:

public class SyncTask : ITask
{
  //接受传递过来的参数的变量
  private string configName;
  
    ///
  /// 具体操作的代码
  ///
  public void HandleConditionsMetEvent(object sender, ConditionsMetEventArgs e)
  {
    try
    {
      // 此处为具体的操作
    }
    catch (Exception ex)
    {
      //抛出异常,记录错误日志
    }
  }

  ///
  /// 初始化
  ///
  ///
  /// 参数(该参数在定时触发设置时传递)
  public void Initialize(ScheduleDefinition schedule, object parameters)
  {
            //通过传递过来的参数来初始化变量
    configFileName = parameters.ToString();
    try
    {
      //初始化的具体代码
    }
    catch (Exception e)
    {
          //抛出异常,记录错误日志
    }
  }
}

3)配置app.config文件,配置文件的参数设置说明:

a.  是一个Task,如果不同的时间触发不同的程序,则需要设置多个; name:就是每个的名字,可以根据自己的需要随便起名; month:该Task在哪个月份触发,* 表示每个月都触发 ;dayofMonth:每个月的几号触发,* 表示每天;dayOfWeek:每周几触发,* 表示每天都触发;hour:每天的几点触发,* 表示每小时触发一次;minute:每小时的几分钟触发,58表示每小时的58分触发;second:每分钟的几秒触发。

b. 是需要触发的类,type:"需要触发的类所在的详细地址(项目名.文件夹名.类名),项目名,Version,Culture,PublicKeyToKen",parameters:需要传递的参数,如果不传递参数可以设置为"" ;

代码如下:

   
   
     
       
         
       
     
   

4)主程序来开启定时程序:

代码如下:

SchedulerRuntime.StartWithConfig();

OK,到现在为止,一个完整的定时程序就写完啦。


    
 
 

您可能感兴趣的文章:

  • C# Timer定时器控件运行时需要修改系统时间的问题
  • C#判断某程序是否运行的方法
  • C#程序自动以管理员方式运行的实现方法
  • C#默认以管理员身份运行程序实现代码
  • C#获取当前程序运行路径的方法汇总
  • C#在运行时动态创建类型的实现方法
  • C#测量程序运行时间及cpu使用时间实例方法
  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
  • c#异步操作后台运行(backgroundworker类)示例
  • C#中隐式运行CMD命令行窗口的方法
  • C#只允许运行一个程序实例的多种方法
  • C#在后台运行操作(BackgroundWorker用法)示例分享
  • 解决C#程序只允许运行一个实例的几种方法详解
  • C#实现获取运行平台系统信息的方法
  • c#防止多次运行代码收集分享
  • C#开发Windows服务实例之实现禁止QQ运行
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • windows下cmd命令提示符下让程序后台运行命令
  • telnet到主机去运行一个我编的程序,退出telnet时那个程序也不运行了,这是怎么回事?按程序逻辑它应该一直运行下去的。
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • 在JB7中默认的情况下会为程序生成一个包,程序在JB7中可以正常运行,可是在JDK中却无法运行
  • 我用C在UNIX下写程序,生产文本,如何能让我的程序并行运行,好加快运行速度,举例说明。
  • 怎样在客户端(win2k svr)vc程序里使hp-ux服务器中的c程序运行,另外如何获得其运行结果?
  • 在LIUNIX中,在运行程序中,运行什么命令可以出现类似DOS的界面...谢谢.
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用mutex实现应用程序单实例运行代码分享
  • php计算程序运行时间的简单例子分享
  • 解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
  • PHP中几个可以提高运行效率的代码写法、技巧分享
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 如何运行外部命令后不等外部命令运行结束直接运行下一条命令
  • 在docker容器中运行hello world!
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 通过docker ps命令检查运行中的docker镜像
  • 用Jbuilder3 遇到问题不能运行把可疑代码注掉后可以运行但是重新使用可疑代码时又可以运行了多次重复都是如此
  • 通过docker run命令运行新的docker镜像
  • “模块”在内核中运行与作为单独进程运行在机制上有什么区别与联系?
  • 安装运行微软win7/Windows7系统要求及官方下载地址
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • ​Windows Server 2016提供Docker原生运行的企业级支持
  • tomcat下servlet无法运行,但是jsp可以运行,在线等待。。。
  • 请教为什么要运行一个可执行文件要以./文件名 的形式来运行?
  • 请问怎么改配置文件啊?能运行startx启动XWindow,运行X就不行呢?
  • 问一个crontab中不能运行手动可以运行的问题
  • 中断恢复现场时怎样判断进程运行到那一步,如何无缝连续运行的呢?
  • 关于shell脚本手动运行和自动运行的区别
  • 为什么我的applet可以在appletviewer上运行,但不能在ie里运行!?
  • JBuilder运行JSP的问题,一次只运行一个JSP页面
  • mysql下怎样运行脚本以运行niuzi.sql为例
  • 我用qemu来运行我修改了KGDB的内核选项 运行有问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3