加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

C#中timer类的用法

发布时间:2021-07-06 05:55:05 所属栏目:大数据 来源: https://blog.csdn.net/kasama1
导读:C#中timer类的用法 关于C#中timer类? 在C#里关于定时器类就有3个??? 1.定义在System.Windows.Forms里??? 2.定义在System.Threading.Timer类里??? 3.定义在System.Timers.Timer类里? System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制

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????????? static?Timer?CheckUpdatetimer?=? new?Timer();
?7?
?8????????? ?检查更新锁 ?9????????? int?CheckUpDateLock?=?0;
10?
11????????? /// 12? ???????? ?设定数据检查Timer参数
13? ///
14????????? internal? 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?=? 24?????????}
25?
26????????? 27? ?timer事件
28? 29? 30? 31????????? 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????????????? 45?????????????{
46?????????????????CheckUpDateLock?=?0;
47?????????????}????????????
48?????????}
49?}

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读