日期:2014-05-16  浏览次数:20918 次

c#实时循环检测数据变化去出发事件
        private void timer3_Tick(object sender, EventArgs e)//timer控件间隔1秒执行,
        {
           i=textBox1.text;
            if (test.text.ToString() == "0")  //判断test中的值是不是为“0”
            {
                chan6_raw = raw_ch6(p1);//重载  p1
                timer3.Stop();//关闭timer
                timer5.Start();//启动timer  总计用了60个timer,启动一个,关闭一个,
            }
        }
                public ushort raw_ch6(ushort p1)//重载函数 返回值p1
        {

            switch (i)
            {
                case "0": p1 = 1056; break;
                case "1": p1 = 1106; break;
                //default: p1 = 1116; break;
            }
            return p1;
        }

现在的问题是,60个timer启动一个关闭一个,代码长度很大,timer控件只能执行一次(控件本身决定),能不能有其他方法呢,实时循环的 检测呢。谢谢大神 哥哥 大神姐姐 。
------解决方案--------------------
之所以使用定时器,是因为可能需要每隔一段时间去检测某种事物的状态,即便开60个定时器,也许目的就是一个监测状态,那为什么不能用一个定时器去实现呢?

可以把监测的对象整个过程视为任务,开个定时器监测所有任务的状态就可以了,知道满足合适的条件为止,无需开那么多定时器
------解决方案--------------------
开一个timer,把需检测标记放到数组里,然后遍历数组,根据检测标记执行需要的操作
------解决方案--------------------
http://bbs.csdn.net/topics/380095904