手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#定时运行程序分享(定时程序)
c#定时运行程序分享(定时程序)
摘要:1)在我们的项目中添加引用文件:TaskSchedulerEngine.dll(dll定义了一个ITask接口,定义了两个方法Initial...

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

b. <task>是需要触发的类,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#定时运行程序分享(定时程序)】相关文章:

winform树形菜单无限级分类实例

PowerShell 定时执行.Net(C#)程序的方法

C#排序算法之快速排序

C#常用正则大全分享

C#实现大数字运算的实例代码

c#初学简单程序实例代码介绍

C# 排序算法之堆排序

C#关机小程序源码

C#程序打成 一键安装包-InstallShield教程

将ocx文件转换成C#程序引用的DLL文件的办法

精品推荐
分类导航