我写了一个小的定时器程序,定时器触发后可以根据需要运行其他代码。希望对你有帮助。
1)在我们的项目中添加一个引用文件:TaskSchedulerEngine.dll(DLL定义了一个ITask接口,并定义了两个方法,Initialize和handle condition SmeteEvent);
2)创建一个周期性触发的类:SyncTask.cs(类名自己随便定义),必须实现接口ITask。具体代码如下:
复制代码如下:公共类SyncTask: ITask{//接受传递参数的变量私有字符串configName///summary///具体操作的代码///summary public void handle conditionseventevent(对象发送方,conditionseventargs e){ try {//下面是具体操作}catch (Exception ex){//抛出异常并记录错误日志}}
///summary///Initialize///summary//Param name=' schedule '/Param//Param name=' parameters '参数(定时器触发设置时传递此参数)/Param void initialize(调度定义schedule,对象参数){//通过传递的参数初始化变量config filename=parameters . tostring();试试{//初始化的具体代码}catch (Exception e){ //抛出异常并记录错误日志}}}
3)配置app.config文件,配置文件的参数设置说明:
A.at/at是任务。如果不同的程序在不同的时间触发,就需要设置多个at;名称:是每个at的名称,可以根据自己的需要命名;月:任务在哪个月触发,*表示每月触发;DayofMonth:每个月的某一天触发,*表示每天;DayOfWeek:星期几触发,*表示每天触发;小时:每天什么时间触发,*表示每小时一次;分钟:每小时几分钟,58表示每小时58分钟;秒:每分钟几秒内触发。
B.task是要触发的类,type:'要触发的类的详细地址(项目名,文件夹名,类名,项目名,版本,文化,PublicKeyToKen ',parameters:要传递的参数,如果不传递可以设置为' ';
复制代码如下:taskschedulerengine schedule at name=' taskname ' month=' * ' day of month=' * ' day of week=' * ' hour=' * ' minute=' 58 ' second=' 0 ' kind=' Local '执行任务类型='Test。Task.SyncTask,Test,Version=1.0.0.0,Culture=neutral,public key token=null ' parameters=' FTP config . XML '//execute/at/schedule/taskSchedulerEngine
4)主程序打开定时器程序:
复制代码如下:scheduler runtime . start with config();
好了,到目前为止,已经写好了一个完整的计时程序。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。