请大神帮我看看我这个事件结构里的while循环,一旦循环上点击停止按钮完全没反应

2019-07-17 18:09发布

捕获.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
答应婊
2019-07-17 18:44
避免在循环外使用事件结构
LabVIEW 帮助
LabVIEW甚至可以在没有事件结构等待处理事件时产生事件。由于事件结构每次执行时仅处理一个事件,将事件结构放在While循环中,VI不再需要事件时,While循环方停止执行,从而保证事件结构处理完毕所有的事件。
        注意:  如果没有任何事件结构来处理某一事件且前面板被锁定,该VI的用户界面将不响应任何操作。如果发生这种情况,单击中止按钮停止VI运行。右键单击事件结构并取消勾选编辑事件对话框中的锁定前面板直至本事件分支完成复选框可禁用前面板锁定。过滤事件则不能关闭前面板锁定。
例如,在下列程序框图中,事件结构在While循环之外,前面板被数值改变分支锁定。

如改变数值控件的值,即产生一个事件。事件结构执行一次,并处理“值改变”事件。如再次改变数值控件的值,就再发生一个事件,因为启用了前面板锁定,用户界面将被锁定。事件结构已经执行了一次,因为不在While循环内,所以事件结构不能再次执行从而处理第二个事件。如单击停止布尔控件,停止While循环和VI。VI不会停止,因为程序框图还没有处理第二个事件。单击停止布尔控件,LabVIEW不会处理事件直到程序框图开始处理该事件。将事件结构放在While循环之中,即可避免上述情况。
事件结构从VI运行时就立即开始等待事件。例如,如将同一个顺序结构中的两个事件结构配置为等待同一个前面板对象的鼠标单击事件,事件第一次发生时,两个事件结构同时执行。如希望第二个事件结构在事件第二次发生时执行,不要使用顺序结构,而应把事件结构放置在For循环中,并配置For循环执行两次。 最佳答案

一周热门 更多>