循环结构中嵌入事件结构,为什么不能停止

    为了和用户交互,程序设计时经常要捕获用户的行为来触发相应的事件,一般采用的是在循环中嵌入事件结构如下图所示,发现(1)如果一直 没有触发事件,则无法停止循环?(2)按下停止按钮后,在运行完当次循环后还会循环一次?

loop&event

针对这个问题搜索到了如下两篇文章,解释得很清楚,非常感谢

http://www.eefocus.com/csxcs366/blog/11-01/202294_e0684.html

https://blog.youkuaiyun.com/ap0108220/article/details/16842267

总结来说为以下几点:

  • 事件结构原理: 等待事件发生--->执行动作。程序会在设定的超时时间内等待事件发生,如果达到超时时间设定值则不等待,上图中,没有设置超时时间,所以程序会一直等待,无法停止。
  • labview中的循环是do---while形式的,但又不同于c中的循环结构的执行顺序(循环体执行完毕后,判断是否能进行下次循环),labview是数据流驱动的,当次循环体的执行和下次循环条件的判断是同步开始的,为解决该问题,可以(A)利用顺序结构把循环条件的判断置于处理事件程序的后面(B)设置超时时间,添加超时事件分支,并将循环条件判定置于该分支中。

顺着前辈的博客找到了另外两个比较好的连接,谢谢。

《LabVIEW 编程思想(第2版)传送门》https://blog.youkuaiyun.com/xelloq/article/details/45220385

LabVIEW--北方客栈提到的书籍:  LabVIEW 编程样式;软件工程方法在LabVIEW中的应用 https://www.labview365.com/labview19987199942641535821349206528833521mdashmdash2772165289.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值