这里的顺序结构也不是必须的,因为就算不用事件结构,程序也是等“停止值改变”事件结构里面的程序全部执行完后才会将 T 输出到外部循环的循环条件端子的,如果不用事件结构,读取“停止”按钮会跟播放声音同时进行,但只有等声音播放完后,“停止”按钮的 T 才会传到事件结构右边的通道再输入到循环的停止条件端那里。
在很多程序中都是在事件结构外面、WHILE 循环里面加了一个延时的,我想是不是受“使用WHILE 循环时最好加一个延时以降低 CPU 占用率”这个说法的影响了,以至于 WHILE 循环中都会添加上一个延时,另外在比赛的程序中也发现了WHILE 循环中没加延时的情况,不知道是不是忘了还是觉得子 VI 不重要就没加了:
像上图中这样只有一个WHILE 循环的,确实是需要加一个延时,以免这个循环占用了太多的 CPU,大家可以试验一下,运行这个程序的时候打开WINDOWS 进程管理器,会发现 CPU使用率为 100%,LabVIEW 就占了 97%以上,如果在循环数 i 上创建一个显件,会发现 i 变化非常快,所以为了不影响其它进程,加一个小小的延时,就算是 1ms 的延时,CPU的使用率马上就接近正常水平了,一般在只使用 WHILE 的用户界面程序中,延时到 200ms 用户都基本上感觉不到程序的响应会有延时。 在没有事件结构之前(6.0 版以前),都是使用下面的方式来检测按钮动作的,截自程序竞赛的范例: