单线程实现定时执行任务功能
2017-03-09 12:02
369 查看
近日,应项目要求,需要定时执行一个更新任务。为了弘扬学习不馁精神,本人使用了两种方式进行实现,分别是:1、利用单线程,本博文重点内容。2、利用Oracle中的数据库连接(dbLink)先将两个数据库进行连接,之后通过存储过程进行实现,这个以后再写吧。今天呢,对单线程的实现方法进行详细说明下。
首先说明下环境,本次使用的是.Net Framework 2.0/Oracle 11g来完成,系统环境为Windows 10;
第二,下面对单线程实现功能的主要代码先贴出来再说;
1、首先为了代码的简洁和美观,以及使用起来方便,我们声明一个委托,并定义一个委托变量;
2、实例化委托,在窗体初始化时,将该委托进行实例化(委托实例化之后还是委托,和类不一样,类叫实例或者对象^_^);
3、由于该工具中只需要执行数据库更新和信息输出功能,所以委托函数如下:
4、正主来了。上面说了,该工具是利用单线程 实现的,所以我们用到了System.Threading命名空间下的Timer和Thread,代码如下:
6、接下来呢,就是执行什么任务了,在这里我就不写了,上面的可以使用于任何任务当中。
中午了,吃饭不积极,思想有问题,哈哈,吃饭吃饭
首先说明下环境,本次使用的是.Net Framework 2.0/Oracle 11g来完成,系统环境为Windows 10;
第二,下面对单线程实现功能的主要代码先贴出来再说;
1、首先为了代码的简洁和美观,以及使用起来方便,我们声明一个委托,并定义一个委托变量;
//声明委托 public delegate void UpdateTextDelegate(string msg,string option); //定义委托变量 public UpdateTextDelegate UpdateText;
2、实例化委托,在窗体初始化时,将该委托进行实例化(委托实例化之后还是委托,和类不一样,类叫实例或者对象^_^);
//实例化委托 UpdateText = new UpdateTextDelegate(UpdateTextFunction);
3、由于该工具中只需要执行数据库更新和信息输出功能,所以委托函数如下:
/// <summary> /// 委托函数 /// </summary> /// <param name="msg"></param> /// <param name="option"></param> private void UpdateTextFunction(string msg, string option) { if (option == "information") { this.richTextBox1.AppendText(string.Format("{0}\r", msg)); //书写到日志 LogClass.WriteLog(msg); } else if (option == "end") { this.richTextBox1.AppendText(string.Format("{0}\r\n\r\n",msg)); //书写到日志 LogClass.WriteLog(msg); } else if(option == "run") { QueryRefer(); } }
4、正主来了。上面说了,该工具是利用单线程 实现的,所以我们用到了System.Threading命名空间下的Timer和Thread,代码如下:
//线程中的定时器 timer = new System.Threading.Timer(new TimerCallback(timer_Tick), null, Convert.ToInt32(this.textBox2.Text) * 1000 * 60 * 60, Convert.ToInt32(this.textBox2.Text) * 1000 * 60 * 60); timer.Change(0,Convert.ToInt32(this.textBox2.Text)*1000*60*60);
//线程声明 Thread thread = new Thread(new ThreadStart(delegate { StartWriteMsg(); })); thread.Name = "myupdateThread"; //线程启动 thread.Start();5、既然线程已经启动,那么就要考虑,在该线程上执行什么任务,该怎样执行;
this.BeginInvoke(UpdateText, "", "run");//在创建控件的基础句柄所在的线程上,用指定的参数异步指定委托
6、接下来呢,就是执行什么任务了,在这里我就不写了,上面的可以使用于任何任务当中。
中午了,吃饭不积极,思想有问题,哈哈,吃饭吃饭
相关文章推荐
- Java:利用java Timer类实现定时执行任务的功能
- ASP.NET MVC计划任务实现方法(定时执行某个功能)
- Java:利用java Timer类实现定时执行任务的功能
- 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
- windows下的计划任务程序执行PHP文件 PHP定时功能的实现
- 使用服务程序实现PHP定时执行任务功能
- C++编码实现定时任务执行功能
- Java定时任务:利用java Timer类实现定时执行任务的功能
- 使用任务计划功能结合shutdown命令让Win7实现定时自动执行
- 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
- 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- 使用ASP.NET实现Windows Service定时执行任务
- 使用 Java 计时器实现定时执行任务
- 使用ASP.NET实现Windows Service定时执行任务
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- 使用ASP.NET实现Windows Service定时执行任务
- 通过SSIS实现Oracle与Sqlserver数据库间的数据同步,并定时执行同步任务