首页 >微信小程序 >小程序开发 >利用C#实现定时小程序代码分享

利用C#实现定时小程序代码分享

高洛峰
高洛峰原创
2017-03-14 16:25:022304浏览

这篇文章利用C#实现定时小程序代码分享

之前一直觉得定时程序好神秘,后来,当我自己真正写了一个小的定时程序时,发现其实没有想象中的那么难。下面,我分享一下我自己的操作过程,希望能对大家有帮助。

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

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

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

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

<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)主程序来开启定时程序:

SchedulerRuntime.StartWithConfig();

OK,到现在为止,一个完整的定时程序就写完啦,小伙伴们,欢迎大家提出宝贵意见。

以上是利用C#实现定时小程序代码分享的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn