Labvie暂停程序的讨论
前端时间在论坛上看到了元老做的pause程序,于是自己拿过来研究了一下,整个流程和思路已经很明晰了,但是,如附件中的程序所附,如果我给主采集的程序中加入一个延时100ms的等待,当程序正在执行采集时(即绘图)时,直接点stop就会弹出错误信息,如图片所视,如果是先暂停再关闭(stop),就没有问题,个人觉得应该是wait rendezvous等待时间和wait 100ms之间的问题,但具体就有点不明白,还望指教。 程序看不了,按你说的,你STOP后加个延时可以吗? 整个PAUSE程序有三个并行的while循环,一个是stop循环,用来控制程序结束,一个是绘图while循环,程序用来绘图,一个是pause while循环,用来实现暂停。我是在绘图的while循环中加了一个延时,该循环中有四个并行的绘图程序。如果pause按钮为F,绘图程序循环绘图,如果此时点stop停止整个VI,就出错,但如果是先点pause(即暂停绘图),然后再点STOP停止整个VI则没有问题,不知道为什么!? pause的那个循环是最后一个结束的。。。
当你把pause设置为true,然后去点击stop,那么,stop循环结束,导致rendezvous注销,然后执行pause那个循环,检测到pause为true,执行循环里case的true分支,尝试去使用rendezvous,但这个时候rendezvous无效(已经注销),所以,就会出现这个错误。。。 当你的程序在绘图时,如果点了stop刚其后的destroy就会执行,但上面一个while里的等待集合点还在执行,因集合已经不存在,所以会报错的
页:
[1]