源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#中timer类的用法总结

  • 时间:2021-12-21 23:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#中timer类的用法总结
[b]C#中timer类的用法 [/b]关于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控件。它们的缺点是不支持直接的拖放,需要手工编码。 [b]例: [/b]使用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类的方法
[u]复制代码[/u] 代码如下:
public class BF_CheckUpdate      {          private static object LockObject = new Object();          // 定义数据检查Timer          private static Timer CheckUpdatetimer = new Timer();          // 检查更新锁          private static int CheckUpDateLock = 0;          ///          /// 设定数据检查Timer参数          ///          internal static void GetTimerStart()          {              // 循环间隔时间(10分钟)              CheckUpdatetimer.Interval = 600000;              // 允许Timer执行              CheckUpdatetimer.Enabled = true;              // 定义回调              CheckUpdatetimer.Elapsed += new ElapsedEventHandler(CheckUpdatetimer_Elapsed);              // 定义多次循环              CheckUpdatetimer.AutoReset = true;          }          ///          /// timer事件          ///          ///          ///          private static void CheckUpdatetimer_Elapsed(object sender, ElapsedEventArgs e)          {             // 加锁检查更新锁              lock (LockObject)              {                  if (CheckUpDateLock == 0) CheckUpDateLock = 1;                  else return;              }                     //More code goes here.            //具体实现功能的方法             Check();                // 解锁更新检查锁              lock (LockObject)              {                  CheckUpDateLock = 0;              }                     }        }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部