C#中timer类的用法总结
1.定义在System.Windows.Forms里
2.定义在System.Threading.Timer类里
3.定义在System.Timers.Timer类里
System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。
System.Timers.Timer和System.Threading.Timer非常类似,它们是通过.NET Thread Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。System.Timers.Timer还可以应用于WinForm,完全取代上面的Timer控件。它们的缺点是不支持直接的拖放,需要手工编码。
例:
使用System.Timers.Timer类
//实例化Timer类,设置间隔时间为10000毫秒;
System.Timers.Timert=newSystem.Timers.Timer(10000);
//到达时间的时候执行事件;
t.Elapsed+=newSystem.Timers.ElapsedEventHandler(theout);
t.AutoReset=true;//设置是执行一次(false)还是一直执行(true);
t.Enabled=true;//是否执行System.Timers.Timer.Elapsed事件;
====================================
自己写的一个用System.Timer类的方法
publicclassBF_CheckUpdate
{
privatestaticobjectLockObject=newObject();
//定义数据检查Timer
privatestaticTimerCheckUpdatetimer=newTimer();
//检查更新锁
privatestaticintCheckUpDateLock=0;
///
///设定数据检查Timer参数
///
internalstaticvoidGetTimerStart()
{
//循环间隔时间(10分钟)
CheckUpdatetimer.Interval=600000;
//允许Timer执行
CheckUpdatetimer.Enabled=true;
//定义回调
CheckUpdatetimer.Elapsed+=newElapsedEventHandler(CheckUpdatetimer_Elapsed);
//定义多次循环
CheckUpdatetimer.AutoReset=true;
}
///
///timer事件
///
///
///
privatestaticvoidCheckUpdatetimer_Elapsed(objectsender,ElapsedEventArgse)
{
//加锁检查更新锁
lock(LockObject)
{
if(CheckUpDateLock==0)CheckUpDateLock=1;
elsereturn;
}
//Morecodegoeshere.
//具体实现功能的方法
Check();
//解锁更新检查锁
lock(LockObject)
{
CheckUpDateLock=0;
}
}
}
相关文章
- C#编写单片机上位机软件-串口通讯(BMS汽车动力电池管理系统)
- C# SplitContainer 控件详细用法
- C# TextBox输入密码显示星号(*)
- c#实战教程_ps初学者入门视频
- C# 多线程详细讲解「建议收藏」
- asp.net(c#)利用构造器链的代码
- c#datatable用法总结
- C#时间格式化(Datetime)用法详解
- 解析C#中#region与#if的作用
- C#中委托的基本用法总结
- c#闭包使用方法示例
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- C#List中FindAll用法的一些简单示例
- C#实现去除Strings中空格的方法
- C#中var关键字用法分析
- 浅谈C#设计模式之开放封闭原则
- C#简单的向量用法实例教程
- C#各种数组的用法实例演示
- C#中的委托介绍
- C#中缓存的基本用法总结
- C#调用SQL语句时乘号的用法
- C#基础之委托用法实例教程
- C#中WebBroeser控件用法实例教程