定时器设置间隔为5分钟,怎样一使定时器启动就执行某段代码,而不是等5分钟再去执行

解决方案 »

  1.   

    我给你个代码吧,以前也为这事纠结过
     public Form1()
            {  
                InitializeComponent();
                //启动定时器
                System.Timers.Timer aTimer = new System.Timers.Timer();
                aTimer.Elapsed += new ElapsedEventHandler(online);
                aTimer.Interval = 1000;//这里设置时间为1秒
                aTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true)
                aTimer.Enabled = true;
            }        private void online(object source, System.Timers.ElapsedEventArgs e)
            {
                System.Timers.Timer t = null;
                if (source is System.Timers.Timer)
                {
                    t = source as System.Timers.Timer;//获取定时器时间
                }
                t.Stop();//停止定时器
                {
                  ......//干活
                   }
                t.Interval = 170000;//重新修改定时器时间
                t.Start();//启动定时器
            }
      

  2.   

    这个最简单 
    先定义一个字段
     private System.Threading.Timer flatformTimer;在界面初始化中
    flatformTimer = new System.Threading.Timer(ControlCmdReceiveInfo, null, 1000, 300000);就可以了,ControlCmdReceiveInfo是要运行的方法,1000是第一次启动时间隔多久开始运行(你可以设置),300000是你要设定的间隔时间了