Timer控件使用(System.Timers.Timer)

本文详细介绍了如何使用C#中的System.Timers.Timer类实现定时任务,包括定时器的基本配置、事件处理以及如何控制定时器的启用和停止。通过一个具体的示例展示了如何设置定时间隔、触发事件处理程序,并实现特定次数后的自动停止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

System.Timers.Timer t =  new System.Timers.Timer(10000);  

//实例化Timer类,设置间隔时间为10000毫秒;   

t.Elapsed +=  new System.Timers.ElapsedEventHandler(theout);  

//到达时间的时候执行事件; 

t.AutoReset = true;  

//设置是执行一次(false)还是一直执行(true);   

t.Enabled = true;

//需要调用 timer.Start()或者timer.Enabled = true来启动它, timer.Start()的内部原理还是设置timer.Enabled = true;

//调用 timer.Stop()或者timer.Enabled = false来停止引发Elapsed事件, timer.Stop()的内部原理还是设置timer.Enabled = false,最重要的是timer.Enabled = false后会取消线程池中当前等待队列中剩余任务的执行。

举例:

class timerExample

{

  int num = 0;

  //IUSObject blinkObj=null;

  System.Timers.Timer t = null;

  public  static  void  Init()

  {

    //if(blinkObj !=null)

    //{

    //  num = 1;

    //  blinkObj.Visible = true;

    //  t.Enable = false;

    //}

    //blinkObj = new IUSObject();

    t = new System.Timers.Timer(1000);

    t.Elapsed += new System.Timers.ElapsedEventHandler(willDo);  

    t.AutoReset = true;  

    t.Enabled = true;

  }

  public  static void  willDo(object sender, System.Timers.ElapsedEventArgs e)

  {

    //blinkObj.Visible = blinkObj.Visible == true ? false : true;

    MessageBox.Show("每隔1000毫秒执行一次");

     

    if(num>=6)

    {

      System.Timers.Timer  t  = (System.Timers.Timer)sender;

      t.Enable = false;

    }

    num += 1;

  }

}

 说明:若要指定timer的循环次数,需通过num辅助 执行,多次执行Init时,需先将timer的elapsed事件停止(即隐去的内容),然后再次绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值