计划任务 :  个人理解, 就是后台控制程序要求在一定的时间执行相应的任务.

直接上代码:

    之前,因为工作需要. 要求每天在凌晨2:00,执行要做的数据

  1.1  声明一个接口 Ijob

方法: 执行

    public interface IJob
{
//执行方法
void Execute();
}

  1.2 声明一个调度程序配置类

属性: 任务列表 (要实行的任务) ,  时间间隔 (多久执行一次);

    /// <summary>
/// 调度程序配置
/// </summary>
public class SchedulerConfiguration
{
private int sleepInterval;
private List<IJob> jobs = new List<IJob>();
public SchedulerConfiguration(int newsleepInterval)
{
this.SleepInterval = newsleepInterval;
} /// <summary>
/// 任务列表
/// </summary>
public List<IJob> Jobs
{
get { return jobs; } }
/// <summary>
/// 时间间隔
/// </summary>
public int SleepInterval
{
get { return sleepInterval; }
set { sleepInterval = value; }
}

1.3  声明调度程序类

方法:  开启

属性:  调度程序配置对象

    /// <summary>
/// 调度程序
/// </summary>
public class Scheduler
{
private SchedulerConfiguration configuration = null;
public Scheduler(SchedulerConfiguration SchedulerConn)
{
Sconn = SchedulerConn;
} /// <summary>
/// 开始执行的方法
/// </summary>
public void Start()
{
while (true)
{
foreach (IJob job in configuration.Jobs)
{
ThreadStart _threadDelegate = new ThreadStart(job.Execute);
Thread _thread = new Thread(_threadDelegate);
_thread.Start();
Thread.Sleep(configuration.SleepInterval); }
}
} /// <summary>
/// 调度程序配置信息
/// </summary>
public SchedulerConfiguration Sconn
{
get { return configuration; }
set { configuration = value; }
}

1.4   实现 : Ijob接口

 class person : IJob
{ void IJob.Execute()
{
ThreadTest();
}
public void ThreadTest(){
//......
}
}

1.5  在程序入口(主线程)  运行

       public static System.Threading.Thread schedulerThread = null;
static void Main(string[] args)
{
//调度程序配置(每小时执行一次)
SchedulerConfiguration config = new SchedulerConfiguration( * 60 * 60);
//给配置添加工作
config.Jobs.Add(new person());
//调度程序
Scheduler scheduler = new Scheduler(config);
//执行线程
schedulerThread = new System.Threading.Thread(new ThreadStart(scheduler.Start));
schedulerThread.Start();
}

这样, 一个简单的计划任务,就实现了.

C# 计划任务的更多相关文章

  1. 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划

    发个通知,过段时间学习计划相关的东西就出来了,上次写了篇指引文章后有些好奇心颇重的人跟我说:“发现最近群知识库和技能库更新的频率有点大,这是要放大招的节奏啊!” 很多想学习却不知道如何规划的人想要一个 ...

  2. SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)

    前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...

  3. ORACLE从共享池删除指定SQL的执行计划

    Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...

  4. 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器

    企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...

  5. MSSQLSERVER执行计划详解

    序言 本篇主要目的有二: 1.看懂t-sql的执行计划,明白执行计划中的一些常识. 2.能够分析执行计划,找到优化sql性能的思路或方案. 如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博 ...

  6. SQL Server-聚焦使用索引和查询执行计划(五)

    前言 上一篇我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解,Always to review the ...

  7. SQL Tuning 基础概述03 - 使用sql_trace和10046事件跟踪执行计划

    1.使用sql_trace跟踪执行计划 1.1 当前session跟踪: alter session set sql_trace = true; //开始sql_trace alter session ...

  8. SELECT TOP 1 比不加TOP 1 慢的原因分析以及SELECT TOP 1语句执行计划预估原理

    本文出处:http://www.cnblogs.com/wy123/p/6082338.html 现实中遇到过到这么一种情况: 在某些特殊场景下:进行查询的时候,加了TOP 1比不加TOP 1要慢(而 ...

  9. SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)

    本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里. ...

  10. ASP.NET Core官方计划路线及需要废除的一些Framework技术

    概述 下面是 ASP.NET Core的时间表和路线图. 注意日期和特性都可能更改. 作为.NET Core这么大的一个项目,很难准确预测每一个计划的是否有变动. 即便如此,我们还是计划公开和透明的实 ...

随机推荐

  1. LeetCode_Pascal's Triangle II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...

  2. QProcess进程间双向通信

    记得以前写过Linux的C程序, 里面用popen打开一个子进程, 这样可以用read/write和子进程通讯, 而在子进程里则是通过从stdin读和向stdout写实现对父进程的通讯. QProce ...

  3. 单路CPU性能排名 更新于2015.10.6

    http://itianti.sinaapp.com/index.php/cpu 排名 处理器 图例 分数 1 Intel Xeon E5-2699 v3 @ 2.30GHz 22892 2 Inte ...

  4. 【转】Android HAL实例解析

    原文网址:http://www.embedu.org/Column/Column339.htm 作者:刘老师,华清远见嵌入式学院讲师. 一.概述 本文希望通过分析台湾的Jollen的mokoid 工程 ...

  5. 多目录下多文件 makefile编写

    前面已经分享了单目录项下多文件的makefile的编写,现在来看看多目录下多文件makefile的编写: 在做项目时,一般文件都会分几个目录来存放:基本的是  include/  bin/ src/ ...

  6. repter导出到Excel

     ;                 ,  * );                 sheet1.SetColumnWidth(,  * );                 sheet1.SetC ...

  7. Linux下获取线程TID的方法——gettid()

    (转载)http://blog.csdn.net/delphiwcdj/article/details/8476547 如何获取进程的PID(process ID)? 可以使用: #include & ...

  8. SqlServer经典函数之数字去零

    需求: 针对带有小数点的数字信息,去除小数点后多余的零 可能存在的情况: 1.精度范围内,出现多余的零    eg:1234.3400     想要的结果为1234.34 2.精度变大出现的多余的零, ...

  9. Android日志系统驱动程序Logger源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6595744 我们知道,在Android系统中, ...

  10. .NET基础拾遗(1)类型语法基础和内存管理基础1

    一.基础类型和语法 1.1 .NET中所有类型的基类是什么? 在.NET中所有的内建类型都继承自System.Object类型. 1.2 值类型和引用类型的区别? 在.NET中的类型分为值类型和引用类 ...