C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
本文实例讲述了C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析,分享给大家供大家参考。具体分析如下:
在.NETFramework里面提供了三种Timer
①System.Windows.Forms.Timer
②System.Timers.Timer
③System.Threading.Timer
现分述如下:
一、System.Windows.Forms.Timer
1、基于Windows消息循环,用事件方式触发,在界面线程执行;是使用得比较多的Timer,TimerStart之后定时(按设定的Interval)调用挂接在Tick事件上的EvnetHandler。在这种Timer的EventHandler中可以直接获取和修改UI元素而不会出现问题--因为这种Timer实际上就是在UI线程自身上进行调用的。
2、它是一个基于Form的计时器
3、创建之后,你可以使用Interval设置Tick之间的跨度,用委托(delegate)hookTick事件
4、调用Start和Stop方法,开始和停止
5、完全基于UI线程,因此部分UI相关的操作会在这个计时器内进行
6、长时间的UI操作可能导致部分Tick丢失
例如
publicpartialclassForm1:Form
{ publicForm1() { InitializeComponent(); }
intnum=0;
privatevoidForm_Timer_Tick(objectsender,EventArgse) { label1.Text=(++num).ToString(); Thread.Sleep(3000); }
privatevoidbutton1_Click(objectsender,EventArgse) { Form_Timer.Start(); }
privatevoidbutton2_Click(objectsender,EventArgse) { Form_Timer.Stop(); } }