C#中三类Timer的比较

        最近在做一个LeapMotion的作业,由于自带的Listener对的Frame刷新识别速度太快,所以需要实现一个功能:每隔一段时间(自己定义)来调用识别新的Frame的函数。其实有一个InVoke(.....)的方法可以实现这种功能,但是自己用不好,里面的参数让人头疼。实现这种功能的方法肯定有很多种,我最终选择了Timer(定时器),这个的难易程度在我可接受的范围内呀。但是问题又出现了,我的工程中引入了System.Windows.Forms.Timer、System.Timers.Timer、System.Threading.Timer类。每个类中都包含各自的Timer,vs报错有冲突。最终选择了Forms下的,代码如下:
 System.Windows.Forms.Timer tm = new System.Windows.Forms.Timer();
        private void ThisAddIn_Startup(object sender, System.EventArgs e)//程序开始
        {
            tm.Tick += new EventHandler(tm_Tick);
            tm.Interval = 1000;//定义每隔1000ms调用tm_Tick函数
            tm.Start();
            
        }
        void tm_Tick(object sender, EventArgs e) 
        {
              ........         
        }

这样就实现功能了。

那么三种Timer有什么区别呢?

       1、System.Windows.Forms.Timer :http://msdn.microsoft.com/zh-cn/library/system.windows.forms.timer.aspx

       2、System.Timers.Timer:http://msdn.microsoft.com/zh-cn/library/system.timers.timer.aspx

       3、System.Threading.Timerhttp://msdn.microsoft.com/zh-cn/library/system.threading.timer.aspx  

三种Timer的作用都是“提供以指定的时间间隔执行方法的机制“,不同点就在于线程的问题,对于我们目前的程序来所winForm下的Timer就足够了。可以看看这篇文章:

http://blog.csdn.net/dragonpeng2008/article/details/8099771 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值