C#中timer类的用法
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.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类的方法
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 }
C#中timer类的用法的更多相关文章
- android中Handle类的用法
android中Handle类的用法 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无 ...
- 关于C#中timer类
·关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Tim ...
- Java中Class类及用法
Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI.这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方 ...
- java中Timer类的详细介绍(详解)
一.概念 定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的.在JDK中Timer类主要负责计划任务的功能,也就是在指定 ...
- java swing中Timer类的学习
最近在完成学校课程的java平时作业,要实现一个计时器,包含开始.暂停以及重置三个功能.由于老师规定要用这个timer类,也就去学习了一下,顺便记录一下. 首先呢去查了一下java手册上的东西,发现t ...
- 标准C++中string类的用法
转自博客园:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 相信使用过MFC编程的朋友对CString这个类的印象应该非 ...
- 标准C++中string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...
- [转] Java中ArrayList类的用法
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Boost中timer的简易用法
boost::asio::deadline_timer timer_; timer_(io_service), timer_.expires_from_now(boost::posix_time::s ...
随机推荐
- Git使用指南(1)——Git配置命令
配置用户信息 git config --global user.name bongxin git config --global user.email bongxin@yeah.net 配置文本编辑器 ...
- 在Excel中制作复合饼图
在Excel中插入饼图时有时会遇到这种情况,饼图中的一些数值具有较小的百分比,将其放到同一个饼图中难以看清这些数据,这时使用复合条饼图就可以提高小百分比的可读性. 文中的复合饼图只是方便以后记忆,故不 ...
- CSS篇
一.盒子模型: 标准模式和混杂模式(IE).在标准模式下浏览器按照规范呈现页面:在混杂模式下,页面以一种比较宽松的向后兼容的方式显示.混杂模式通常模拟老式浏览器的行为以防止老站点无法工作. CSS盒子 ...
- MyEclipse10安装Svn插件的几种方法
http://blog.sina.com.cn/s/blog_4f925fc30102e9xe.html 方法一:直接解压 下载SVN插件:site-1.6.18.zip 解压后将其全部文件拷贝至:D ...
- awk中分隔符转换
awk中分隔符转换的问题(转) 在awk中明明用OFS重新设置了分隔符,为什么在输出的时候还是原样输出呢! 他是这么写的: echo 1,2,3,4 | awk 'BEGIN{FS=" ...
- jsp页面输出序号
<c:forEach items="${tests}" var="test" varStatus="s"> <li> ...
- 封装的ajax请求
在做登录注册这类提交表单数据时,我们经常需要局部刷新网页来验证用户输入的信息,这就需要用到ajax请求,我们通常需要获取表单中的数据,发起ajax请求,通过服务程序,与数据库的数据进行比对,判断信息的 ...
- The method getJspApplicationContext(ServletContext) is undefined for the type
type Exception report message Unable to compile class for JSP: description The server encountered an ...
- HBase的Write Ahead Log (WAL) —— API与基本概念
HBase的数据写入操作,会先记录到HLog中,再真正写入到MemStore中.前者是对写入友好的格式,后者是对查询友好的格式.所以前者吞吐量更高,写入成功率大,提高了系统的可靠性,“基本”可以实现宕 ...
- FastDfs
下载fastdfs源码包: ? 1 wget http://fastdfs.googlecode.com/files/FastDFS_v3.05.tar.gz 开始安装: ? 1 2 3 4 tar ...