几个常见的定时器
NET允许不同的命名空间里存在同名的类——“System.Timers.Timer, System.Threading.Timer和Sytem.Windows.Forms.Timer”就是一个很好的例子。那么它们之间有何区别呢?我们这就来分析一下: [1]System.Windows.Forms.Timer:这个Timer是我们最最常见的一个Timer,主要用于一般Windows窗体编程时候的定时使用。(主要的属性:Interval——用于控制每隔多少时间出发一次Tick事件,Enabled——是否立即启动定时器,Tick事件——用于在Interval到时之后触发的行为)。 由于该Timer是相对整个WinForm(UI)上的异步操作,因此可以直接控制WinForm上的任何控件;不过缺陷在于既然是基于UI界面的主线程的异步操作,这将导致如果Timer执行一个长时间的任务,会导致界面死亡 ,这也就证明了Timer并非是我们一些人所谓的“多线程”(注意:笔者在这里“多线程”指代并行运行的线程,或者不会引发UI死掉的线程)。我们可以尝试这个代码(在Tick事件中): [C#] Thread.Sleep(10000); [VB.NET] Thread.Sleep(10000) 启动定时器之后,发现界面会假死10秒左右的时间。另外时间不一定精准(因为基于UI异步,或许会有延时等问题)。 [2