源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-05-21 16:02 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#定时运行程序分享(定时程序)
1)在我们的项目中添加引用文件:TaskSchedulerEngine.dll(dll定义了一个ITask接口,定义了两个方法Initialize和HandleConditionsMetEvent); 2)创建一个定时触发的类:SyncTask.cs(类名自己随便定义),该类必须实现接口 ITask。具体代码如下:
[u]复制代码[/u] 代码如下:
public class SyncTask : ITask {   //接受传递过来的参数的变量   private string configName;        /// <summary>   /// 具体操作的代码   /// </summary>   public void HandleConditionsMetEvent(object sender, ConditionsMetEventArgs e)   {     try     {       // 此处为具体的操作     }     catch (Exception ex)     {       //抛出异常,记录错误日志     }   }   /// <summary>   /// 初始化   /// </summary>   /// <param name="schedule"></param>   /// <param name="parameters">参数(该参数在定时触发设置时传递)</param>   public void Initialize(ScheduleDefinition schedule, object parameters)   {             //通过传递过来的参数来初始化变量     configFileName = parameters.ToString();     try     {       //初始化的具体代码     }     catch (Exception e)     {           //抛出异常,记录错误日志     }   } }
3)配置app.config文件,配置文件的参数设置说明: a.  <at></at>是一个Task,如果不同的时间触发不同的程序,则需要设置多个<at>; name:就是每个<at>的名字,可以根据自己的需要随便起名; month:该Task在哪个月份触发,* 表示每个月都触发 ;dayofMonth:每个月的几号触发,* 表示每天;dayOfWeek:每周几触发,* 表示每天都触发;hour:每天的几点触发,* 表示每小时触发一次;minute:每小时的几分钟触发,58表示每小时的58分触发;second:每分钟的几秒触发。 b. <task>是需要触发的类,type:"需要触发的类所在的详细地址(项目名.文件夹名.类名),项目名,Version,Culture,PublicKeyToKen",parameters:需要传递的参数,如果不传递参数可以设置为"" ;
[u]复制代码[/u] 代码如下:
    <taskSchedulerEngine>     <schedule>       <at name="TaskName" month="*" dayOfMonth="*" dayOfWeek="*" hour="*" minute="58" second="0" kind="Local">         <execute>           <task type="Test.Task.SyncTask, Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" parameters="FtpConfig.xml" />         </execute>       </at>     </schedule> </taskSchedulerEngine>
4)主程序来开启定时程序:
[u]复制代码[/u] 代码如下:
SchedulerRuntime.StartWithConfig();
OK,到现在为止,一个完整的定时程序就写完啦。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部