c#定时运行程序分享(定时程序)
发布时间:2023-12-11 20:47:31
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,到现在为止,一个完整的定时程序就写完啦。


猜你喜欢
- 经典排序算法 - 基数排序Radix sort原理类似桶排序,这里总是需要10个桶,多次使用首先以个位数的值进行装桶,即个位数为1则放入1号
- 包括了写入和读取功能. 写入的时候, 如果文件不存在会自动创建. 如果对应的键已经存在, 则自动覆盖它的值. 读取的时候, 如果对应的文件不
- 如果对象可以改变其状态,就很难在多个同时运行的任务中使用。这些集合必须同步。如果对象不能改变器状态,就很容易在多个线程中使用。Microso
- 前言SpringCloud 是微服务中的翘楚,最佳的落地方案。Spring Cloud Config 是一个解决分布式系统的配置管理方案,它
- 指纹识别作为最新兴起的用户身份验证机制,已经被越来越多的应用程序所采用,相比传统的密码九宫格等验证方法,指纹识别更加安全,如今越来越多的安卓
- 持久性底部面板可以用于补充应用主要内容的信息,即使用户与应用程序的其他控件进行互动,也仍然可以看到持久的底部面板。可以使用Scaffold.
- 本文实例为大家分享了java实现简单猜数字的具体代码,供大家参考,具体内容如下代码不多说,图片自加,实现功能有数字比大小,菜单开始,帮助,退
- /** * 循环录像,当内存卡容量少于300M时,自动删除视频列表里面的第一个文件 */private void xunhuanluxian
- JAVA简单写学生信息管理系统,实现学生信息的输入、查询、修改、删除操作package Week;import jdk.internal.u
- 一、通过Java代码在setContentView之前执行:requestWindowFeature(Window.FEATURE_NO_T
- 一.引言相信现在有很多小伙伴都已经很熟悉SpringBoot技术了。它大大地简化了Spring应用的开发,极大地提高了项目的开发效率,受到广
- 1.引言在开发中,拖放是一种比较常见的手势操作,使用它能够让应用的交互更加地便捷和友好,本文将简要介绍如何为Android中的View添加拖
- Android N 中推出了多窗口支持,项目要求适配多窗口模式,记录一下。1.生命周期:对于完全没有适配多窗口的APP来说,当启用多窗口模式
- Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的AP
- 1、这个方法在GpsNET.JT809Core里来源:https://www.cnblogs.com/cnsend/p/12197982.h
- 1.基本知识介绍首先,C#中的.net的常用对话框中没有映射网络驱动映射对话框,所以需要用windows的API函数去实现弹出映射网络驱动器
- Maven Release当我们的项目达到了当前的目标,在经过检测后不需要改变。这时我们就需要将SNAPSHOT版本打包成RELEASE版本
- 本文实例讲述了Spring实战之属性覆盖占位符配置器用法。分享给大家供大家参考,具体如下:一 配置文件<?xml version=&q
- 本文实例为大家分享了Android读取NFC卡的编号具体代码,供大家参考,具体内容如下NFC相关androidManifest文件设置:一、
- 1.Action中的validate()方法Struts2提供了一个Validateable接口,这个接口中只存在validat