我使用Timer控件每隔一段时间接收一下数据。
在timer1 的Tick函数里是我的数据接收和解析代码。
程序设有一个按键人为的控制Timer1是否工作,
我要问的是,假如现在我把Timer1的Enable属性设为False;
而此时正在运行Tick函数,数据的解析到了一半,问此时程序是否会中断在Tick函数中的运行?
第二,假如过段时间我又把Timer1的Enable属性设为True;
它是重新开始计算运行,还是继续设为False时的工作?

解决方案 »

  1.   

    Timer事实上是使用了线程。不会影响已经开始执行的过程。 只会重置timer触发事件的时间
      

  2.   

    不会中断在Tick函数中的运行;
    重新开始计算运行;
      

  3.   

    楼上正解,先定义个静态变量a=0;在tick中写上:
               a = a+2;
                timer1.Enabled = false;
                MessageBox.Show(a.ToString());
                a = a + 3;
                MessageBox.Show(a.ToString());
               // timer1.Enabled = true;
                //MessageBox.Show(a.ToString());
    问题一的时候先注释最后两行,会有两个对话框,为2和5,证明不会中断.既然不会中断,下次肯定是重头执行了.