.Net中三种Timer解析

 在.Net中有三种Timer分别是

private System.Windows.Forms.Timer
private System.Timers.Timer
private System.Threading.Timer

今天做了个实验,发现这三种Timer最终最小定时间隔都只有15-16毫秒,就是说把Timer得Interval间隔设成1-16,那么得到得效果将会是一样得,当然实验并不严谨,不过在普通应用中,我们可以认为.Net得这三个Timer最小间隔为20毫秒

实验环境如下:

硬件环境:CPU P4 2.4  内存1G

操作系统:Windows Server 2003 Enterprise Edition SP2

开发环境:Visual Studio 2005

代码片段:

private  System.Windows.Forms.Timer T1
private  System.Timers.Timer  T2
private  System.Threading.Timer T3

 ArrayList al1 
=   new  ArrayList();
 ArrayList al2 
=   new  ArrayList();
 ArrayList al3 
=   new  ArrayList();

        
private   void  btnStart_Click( object  sender,EventArgs e)
        
{
            t1.Interval 
= 1;
            t1.Tick 
+= new EventHandler(t1_Tick);
            t1.Enabled 
= true;

            t2.Interval 
= 1;
            t2.Elapsed 
+= new System.Timers.ElapsedEventHandler(t2_Elapsed);
            t2.Enabled 
= true;

            t3 
= new System.Threading.Timer(new System.Threading.TimerCallback(t3_TimerCallback), null, System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
            t3.Change(
01);
        }


        
private   void  btnStop_Click( object  sender, EventArgs e)
        
{
            t1.Enabled 
= false;
            t2.Enabled 
= false;
            t3.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
        }


        
void  t1_Elapsed( object  sender, System.Timers.ElapsedEventArgs e)
        
{
            al1.Add(System.DateTime.Now.Millisecond);
        }


        
void  t2_Tick( object  sender, EventArgs e)
        
{
            al2.Add(System.DateTime.Now.Millisecond);
        }


        
void  t3_TimerCallback( object  state)
        
{
            al3.Add(System.DateTime.Now.Millisecond);
        }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值