C#多线程编程之:Timer(定时器)使用示例
2014-05-19 19:02
393 查看
Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。
构造函数:Timer(TimerCallback callback, object state, int dueTime, int period)
参数说明
callback:一个 System.Threading.TimerCallback 委托,表示要执行的方法。
state:一个包含回调方法要使用的信息的对象,或者为 null。
dueTime:调用 callback 之前延迟的时间量(以毫秒为单位)。指定 System.Threading.Timeout.Infinite 可防止启动计时器。指定零(0) 可立即启动计时器。
period:调用 callback 的时间间隔(以毫秒为单位)。指定 System.Threading.Timeout.Infinite 可以禁用定期终止。
Timer.Change()方法:修改定时器的设置。(这是一个参数类型重载的方法)
示例代码:
using System;
using System.Threading;
namespace ThreadExample
{
//Timer信息对象 7
class TimerObject
{
publicint Counter =0;
}
class App
{
publicstaticvoid Main()
{
TimerObject s =new TimerObject();
//创建委托对象TimerCallback,该委托将被定时调用
TimerCallback timerDelegate =new TimerCallback(CheckStatus);
//创建一个时间延时2s启动,间隔为1s的定时器
Timer timer =new Timer(timerDelegate, s, 2000, 1000);
//检查计数器值
while (s.Counter <10)
{
Thread.Sleep(1);
}
//更改timer执行周期,延时1s开始
timer.Change(1000, 500);
Console.WriteLine("Timer被加快了!");
//检查计数器值
while (s.Counter <20)
{
Thread.Sleep(1);
}
//释放Timer
timer.Dispose();
Console.WriteLine("Timer示例运行结束!");
Console.ReadLine();
}
//下面是被定时调用的方法
staticvoid CheckStatus(Object state)
{
TimerObject s =(TimerObject)state;
s.Counter++;
Console.WriteLine("当前时间:{0} 计数器值:{1}", DateTime.Now.ToString(), s.Counter);
}
}
}
程序首先创建一个定时器,延时2秒启动,每隔1秒调用一次CheckStatus()方法。当调用9次以后,修改时间间隔为500毫秒,且指定在1秒后重新开始。当计数达到19次,调用Dispose()方法删除了timer对象,终止程序。
构造函数:Timer(TimerCallback callback, object state, int dueTime, int period)
参数说明
callback:一个 System.Threading.TimerCallback 委托,表示要执行的方法。
state:一个包含回调方法要使用的信息的对象,或者为 null。
dueTime:调用 callback 之前延迟的时间量(以毫秒为单位)。指定 System.Threading.Timeout.Infinite 可防止启动计时器。指定零(0) 可立即启动计时器。
period:调用 callback 的时间间隔(以毫秒为单位)。指定 System.Threading.Timeout.Infinite 可以禁用定期终止。
Timer.Change()方法:修改定时器的设置。(这是一个参数类型重载的方法)
示例代码:
using System;
using System.Threading;
namespace ThreadExample
{
//Timer信息对象 7
class TimerObject
{
publicint Counter =0;
}
class App
{
publicstaticvoid Main()
{
TimerObject s =new TimerObject();
//创建委托对象TimerCallback,该委托将被定时调用
TimerCallback timerDelegate =new TimerCallback(CheckStatus);
//创建一个时间延时2s启动,间隔为1s的定时器
Timer timer =new Timer(timerDelegate, s, 2000, 1000);
//检查计数器值
while (s.Counter <10)
{
Thread.Sleep(1);
}
//更改timer执行周期,延时1s开始
timer.Change(1000, 500);
Console.WriteLine("Timer被加快了!");
//检查计数器值
while (s.Counter <20)
{
Thread.Sleep(1);
}
//释放Timer
timer.Dispose();
Console.WriteLine("Timer示例运行结束!");
Console.ReadLine();
}
//下面是被定时调用的方法
staticvoid CheckStatus(Object state)
{
TimerObject s =(TimerObject)state;
s.Counter++;
Console.WriteLine("当前时间:{0} 计数器值:{1}", DateTime.Now.ToString(), s.Counter);
}
}
}
程序首先创建一个定时器,延时2秒启动,每隔1秒调用一次CheckStatus()方法。当调用9次以后,修改时间间隔为500毫秒,且指定在1秒后重新开始。当计数达到19次,调用Dispose()方法删除了timer对象,终止程序。
相关文章推荐
- C#多线程编程之:Timer(定时器)使用示例
- jdk自带的Timer定时器的使用示例
- java定时器timer的使用方法代码示例
- Java多线程编程5--定时器Timer的使用
- C#中Timer定时器的使用示例
- Java多线程编程——Lock的使用与定时器Timer
- C#多线程编程介绍——使用thread、threadpool、timer
- 【Timer】定时器使用示例
- linux下定时器介绍2--timer_create等函数集的使用示例
- 《Java多线程编程核心技术》(五)定时器Timer的使用
- C#多线程编程介绍——使用thread、threadpool、timer
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- SqlTransaction 数据库编程事务使用示例
- SqlTransaction 数据库编程事务使用示例
- java中使用线程实现Timer(定时器)原理和源码
- Windows 游戏编程大师技巧第四章第6个例子---定时器的使用
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- [摘抄]windows服务中的定时器timer使用