事件结构中循环如何嵌套运行?

2019-07-17 08:16发布

打个比方,有三个事件,之间有互相约束的关系,但是没有明星的主次。一般是在第一二个事件发生后,第三个事件才有效执行。现在的问题是,第三个事件发生后,就会执行循环,大概要循环几百次,每次循环的时间有可能十多二十秒,那么我这个循环该放在哪里?是放在第三个时间内,还是加个顺序结构,将这个循环放在事件发生结构后。还有,如果在循环运行期间,我想要触发第二、三个事件的话,该怎么处理?谢谢各位慷慨解囊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
ZHZJK
1楼-- · 2019-07-17 13:39
举个相类似的例子
QQ截图20140911114810.png
用两个循环,上面用来触发事件,
下面用来执行操作
在本程序中第三状态用来实现自加
程序1.vi (9.36 KB, 下载次数: 112)


luo_wei
2楼-- · 2019-07-17 14:58
ZHZJK 发表于 2014-9-11 11:52
举个相类似的例子

用两个循环,上面用来触发事件,

你这个我还没太弄明白,怎么说呢,不会应用。用到自己的程序中反应好慢了
imcu2007
3楼-- · 2019-07-17 18:55
事件结构中不建议帧内使用循环,这样循环不执行完其他事件不会响应,循环应该是单独一个框架,一致保持循环,由其他变量激活,也可以使用另外一个事件结构,使用消息队列或者枚举变量,实现帧帧循环也可以,这样帧和帧之间还可以插入其他响应的帧。
ZHZJK
4楼-- · 2019-07-17 22:39
luo_wei 发表于 2014-9-11 22:42
你这个我还没太弄明白,怎么说呢,不会应用。用到自己的程序中反应好慢了 ...

这样来说吧
先说两个while循环的作用
第一个while循环用来执行事件,像第一,第二状态的功能可以直接放到事件结构里去解决。
而第三状态这需要放到第二个while循环里执行,为了不干扰事件的相应。

在说下两个循环是如何执行的,while循环是并行的,至少你看起来是这样的。
但是当一个while循环结构执行后,需要等待另一个while循环。也就是说,另一个while执行10秒,你就要等待10秒
这就是你卡的原因

下面说下解决方法

很少有一个一条语句能执行10秒以上的
也就是说你的第三种状态,其实是由很多不同步骤联合起来的

打个比方,你的第三种状态执行的就是  准备晚饭  
一般准备晚饭要30分钟到一小时不等
但是晚饭并非只有准备晚饭一个步骤
它是由 洗菜, 切菜, 炒菜,等等不同步骤组合而成的
而每个步骤还可以继续往下分解  洗菜是由:拿出菜,打开水,冲洗等等状态组成的
而这些步骤执行起来时间相对较短了很多

也就是说,你第二个循环要将10秒的操作,分解为N个小于1秒的状态
然后要用状态机来编写程序

对你的问题我只能说这么多,程序运行卡,只能说你尚未了结这门程序








luo_wei
5楼-- · 2019-07-18 01:43
 精彩回答 2  元偷偷看……
babyhappyqq
6楼-- · 2019-07-18 03:45
ZHZJK 发表于 2014-9-11 11:52
举个相类似的例子

用两个循环,上面用来触发事件,

说得很好!O(∩_∩)O~

一周热门 更多>