首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在事件结构中循环执行时,不能按LabVIEW中的停止按钮

在事件结构中循环执行时,不能按LabVIEW中的停止按钮
EN

Stack Overflow用户
提问于 2021-06-11 22:53:47
回答 1查看 1.8K关注 0票数 0

我目前正在做一个LabVIEW项目,当我按下中止(停止)按钮时,我发现自己被困在如何做一个when循环出口上。对于一个简单的while循环,我理解如何做到这一点--但问题是,这个while循环嵌套在一个事件结构中,我猜在执行循环时不能按下这个按钮。这里附上了我的代码的一部分的图片(其中包含了造成问题的特定事件案例):

为了花更多的时间来解释问题所在--我认为代码正在做我希望它做的事情(即在一个等待计时器的重复循环中输出一组命令),但是我不能在循环中间停止代码(用鼠标按下中止按钮什么都不做--在按钮中没有显示它被按下,指示器显示没有变化,我也不能在循环期间使用我的程序的任何其他功能,我假设这是相关的)。我不想完全停止LabVIEW程序的运行--只是上面所示的while循环中的代码。为了完整起见,前面板也是这样配置的:

本质上,我想要发生的是在我按DWG时执行的while循环,并且在循环的中间能够中止它。抱歉,如果我的代码看起来有点乱。此外,我尝试了相同的代码,最初使用for循环(通过一个条件终端,以便它可以提前停止),但这也不起作用。谢谢你的帮助,我很感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-13 05:14:54

您的问题是,在事件结构中,默认情况下UI被冻结,所以在退出该框架之前不会处理UI操作(键盘/鼠标/等)。

选项1.您可以右键单击事件结构并选择“编辑由本例处理的事件”对话框,然后取消选中“锁定面板”复选框--这将允许UI在该框架中处于活动状态。我一般不推荐这个解决方案,除非您有一个非常简单的用户界面,因为它导致用户能够在不处理这些控件背后的事件的情况下更改控件(这对用户来说不是一个好的UI体验)。但是如果UI足够简单的话,那就可以了。

选项2.您可以创建一个用户事件,该事件是您在While循环中想要的代码。当按下Deg等待Go按钮时,使用“”节点触发该事件。在用户事件的情况下做同样的事情,以便事件重新触发当并且只有当中止按钮没有被按下时。

选项3.在UI循环之外创建一个单独的循环,使用在UI循环和另一个循环之间运行的某种命令队列进行处理。另一个循环应UI循环的请求进入各种状态.它在收到"go“消息之前什么也不做,然后一直循环直到收到”停止“消息。您可以在Google上搜索“排队消息处理程序”以获得该解决方案的详细信息。对于复杂的UI需求,这是最常见的解决方案,尤其对于将UI代码的关注点与执行代码分离开来非常有用。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67944226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档