各位大虾,你们好,小弟正在编写一个采集系统,设计了两个按钮,一个按钮的功能是让采集卡开始采集数据,另一个按钮的功能是让采集卡停止采集,可是等小弟编完运行后发现,开始采集后,采集按钮一直处于按下状态,就没法点击停止按钮了(按钮没有反应),我是用一个布尔型变量来控制的,不知有何其他更好的方法。谢谢。

解决方案 »

  1.   

    在开始采集按钮的代码中通过 while (flag) {//采集代码}来采集数据,在停止采集按钮的代码中设置 flag = false,并刷新窗口的方法。不过没有达到预期效果。
      

  2.   

    在while (flag)前,flag=true,而在while语句中没有使flag变为false的语句,就造成了死循环。
    解决方法有很两种,一种就是用多线程,在点击开始采集按钮时启动新的线程来执行while (flag) {//采集代码},当点击停止采集按钮时,线程自动结束。
    另一种方法是采用Timer来控件,把采集代码放在Timer的事件处理函数中,在点击采集按钮时,设定Timer时间间隔并使之有效,在点击停止采集按钮时使Timer无效。
      

  3.   

    实时数据采集请不要使用timer