当前位置: 首页 > news >正文

C#中timer类的用法

C#中timer类的用法

关于C#中timer类  在C#里关于定时器类就有3个   
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.Timer t = new System.Timers.Timer(10000);
//到达时间的时候执行事件;
t.Elapsed += new System.Timers.ElapsedEventHandler(theout); 
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true); 
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;

====================================
自己写的一个用System.Timer类的方法

 1 public class BF_CheckUpdate
 2     {
 3         private static object LockObject = new Object();
 4 
 5         // 定义数据检查Timer
 6         private static Timer CheckUpdatetimer = new Timer();
 7 
 8         // 检查更新锁
 9         private static int CheckUpDateLock = 0;
10 
11         ///
12         /// 设定数据检查Timer参数
13         ///
14         internal static void GetTimerStart()
15         {
16             // 循环间隔时间(10分钟)
17             CheckUpdatetimer.Interval = 600000;
18             // 允许Timer执行
19             CheckUpdatetimer.Enabled = true;
20             // 定义回调
21             CheckUpdatetimer.Elapsed += new ElapsedEventHandler(CheckUpdatetimer_Elapsed);
22             // 定义多次循环
23             CheckUpdatetimer.AutoReset = true;
24         }
25 
26         ///
27         /// timer事件
28         ///
29         ///
30         ///
31         private static void CheckUpdatetimer_Elapsed(object sender, ElapsedEventArgs e)
32         {
33            // 加锁检查更新锁
34             lock (LockObject)
35             {
36                 if (CheckUpDateLock == 0) CheckUpDateLock = 1;
37                 else return;
38             }         
39           
40            //More code goes here.
41           //具体实现功能的方法
42            Check();
43               // 解锁更新检查锁
44             lock (LockObject)
45             {
46                 CheckUpDateLock = 0;
47             }            
48         }
49 }
 
转载自:http://www.cnblogs.com/yank/archive/2007/12/03/981238.html
 
 
 

转载于:https://www.cnblogs.com/shuai-bySty/p/5139732.html

相关文章:

  • JavaScript基础:数据类型的中的那些少见多怪
  • 负数的二进制表示
  • FreeRADIUS+DaloRADIUS实现PPTP ***高级用户控制+流量控制
  • 利用angular结合translate为项目实现国际化
  • ADT Example
  • 浮现式设计
  • Office365管理员操作手册-1
  • 【设计模式】抽象工厂模式
  • oracle——06表查询中需要注意的一些问题
  • 佛山Uber优步司机奖励政策(1月25日~1月31日)
  • 携程一万亿交易额的市场逻辑
  • java27:集合框架
  • 使用 JavaScript 将网站后台的数据变化实时更新到前端-【知乎总结】
  • 随机IP代理
  • html 中几次方,平方米,立方米.
  • 30天自制操作系统-2
  • android图片蒙层
  • JavaScript DOM 10 - 滚动
  • Javascript 原型链
  • Java知识点总结(JavaIO-打印流)
  • js递归,无限分级树形折叠菜单
  • MySQL主从复制读写分离及奇怪的问题
  • python docx文档转html页面
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SSH 免密登录
  • 成为一名优秀的Developer的书单
  • 基于web的全景—— Pannellum小试
  • 解决iview多表头动态更改列元素发生的错误
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 项目管理碎碎念系列之一:干系人管理
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 用element的upload组件实现多图片上传和压缩
  • 在Mac OS X上安装 Ruby运行环境
  • 积累各种好的链接
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #DBA杂记1
  • (10)STL算法之搜索(二) 二分查找
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (3)llvm ir转换过程
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)VC++中ondraw在什么时候调用的
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)程序员技术练级攻略
  • (转)原始图像数据和PDF中的图像数据
  • (转载)(官方)UE4--图像编程----着色器开发
  • ./configure,make,make install的作用(转)