建议在同一个循环中,只放置一个事件结构。此时,当一个事件发生时,事件结构将对事件进行处理,然后继续循环,事件结构再等待下一个事件发生。

如在同一个循环中放置两个事件结构,只有在两个事件结构都处理了事件后,循环才能继续。如对事件结构启用了前面板锁定,用户与前面板交互时,VI的界面可能会发生不响应。

例如,在同一个While循环中放置两个事件结构,用第一个事件结构处理“鼠标按下”事件,用第二个事件结构处理“键按下”事件,当用户单击鼠标时,第一个事件结构将收到一个“鼠标按下”事件。第一个事件结构可正确处理该事件并结束执行。同时,第二个事件结构将等待“键按下”事件发生。如用户按下某个键,第二个事件结构将收到“键按下”事件。当第二个事件结构结束对事件的处理时,将继续下一个While循环。如用户不断地在两个操作之间切换:触发“鼠标按下”事件、“键按下”事件、“鼠标按下”事件、“键按下”事件等等,事件结构按预期处理发生的事件,循环得以继续,VI可流畅地运行。

然而,如用户单击鼠标之后再次单击,连续触发了两个“鼠标按下”事件,其间没有发生“键按下”事件,用户界面将陷入挂起状态。当用户第一次单击鼠标时,第一个事件结构接收到一个“鼠标按下”事件并对事件进行处理,然后结束执行。然而,第二个事件结构将继续等待“键按下”事件,从而阻止了下一个While循环的执行。当用户第二次单击鼠标时,labview将触发第二个“鼠标按下”事件,并在第一个事件结构处理该事件之前锁定前面板。于是,VI就陷入了死锁状态。第一个事件结构无法在下一个While循环开始之前执行,而下一个While循环又无法在第二个事件结构收到并处理“键按下”事件前开始。“键按下”事件将不可能发生,因为前面板已被锁定。前面板将保持锁定状态,且无法响应用户的操作,直到用户中止该VI。

为避免前面板锁定时用户界面陷入挂起状态,应单独对VI中事件结构需要处理的所有事件进行配置,或者确保While循环中只包含一个事件结构。

此外,应确保任何时候总有一个可用的事件结构能够处理发生的事件。

参考:

  可能部分参考了网上的信息,由于是很久前写在自己电脑本地的文章,最近被我搬到这里来的,所以记的不是太清晰。

Labview一个循环中放两个事件结构会导致前面板锁定的问题的更多相关文章

  1. labview从入门到出家4--用事件结构实现运算功能

    使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件.基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的. ...

  2. js for循环中定义clike事件由于闭包导致的循环变量获取不到的问题

    在网上找的 记下来以备不时之需 案例; 本人有一个数组按钮  循环数组按钮 给每个按钮添加click事件 原本以为搞定但是出现了 每个按钮都是数组最后的方法 然后查找问题 发现onclike事件中的i ...

  3. 记录一个关于 Document.on绑定事件后,导致页面卡顿的情况

    假设当前页面的js文件中有如下函数: function A(){ function B(); } function B(){ $(document).on("click",&quo ...

  4. [Labview资料] labview事件结构学习

      编程的主要目的是为了实现用户的某种功能,用户通过用鼠标.键盘.程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”.事件结 ...

  5. labview事件结构学习

    编程的主要目的是为了实现用户的某种功能,用户通过用鼠标.键盘.程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”.事件结构内 ...

  6. labview事件结构

    等待事件发生,并执行相应条件分支,处理该事件.事件结构 包括一个或多个子程序框图或事件分支,结构处理时间时,仅有一个子程序框图或分支在执行.等待事件通知时,该结构可超时. 连线边框左上角的“超时”接线 ...

  7. 一个相对通用的JSON响应结构,其中包含两部分:元数据与返回值

    定义一个相对通用的JSON响应结构,其中包含两部分:元数据与返回值,其中,元数据表示操作是否成功与返回值消息等,返回值对应服务端方法所返回的数据. public class Response { pr ...

  8. LabVIEW设计模式系列——case结构模拟事件结构

    标准:1.所有按钮的机械动作必须都用释放时触发或者单击时触发,这是为了保证仅仅触发一次动作. 标准:1.使用简单的case结构模拟事件结构.

  9. 【文档】五、Mysql Binlog事件结构

    这个部分描述了事件被写入binlog或者delay log中的属性.所有的事件有相同的整体结构,也就是包含事件头和事件数据: +===================+ | event header ...

随机推荐

  1. 转mybatis返回自增主键,亲测

    重点是获取对象的主键值而不是insert的返回值 Mybatis获取插入数据的主键时,返回值总是1xml里的写法 第一种方式 <insert id="insertLogin" ...

  2. Java基础系列(27)- 什么是方法

    何谓方法 System.out.println();它是什么呢 # System:类 # out:对象 # println():方法 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问 ...

  3. Docker系列(21)- DockerFile介绍

    DockerFile介绍 dockerfile是用来构建docker镜像的文件!命令参数脚本! 构建步骤 编写一个dockerfile文件 docker build构建成为一个镜像 docker ru ...

  4. Pycharm 使用问题一览

    1. I'm not sure if it is the problem of Pycharm or any other IDE. 需要从本地文件中导入文件,但总是出现波浪线,按ctril点进去发现是 ...

  5. P3313-[SDOI2014]旅行【树链剖分,线段树】

    正题 题目链接:https://www.luogu.com.cn/problem/P3313 题目大意 \(n\)个点的一棵树,每个点有一个颜色和权值,有操作 修改一个点的权值 修改一个点的颜色 询问 ...

  6. P4126-[AHOI2009]最小割【网络流,tarjan】

    正题 题目链接:https://www.luogu.com.cn/problem/P4126 题目大意 给出\(n\)个点\(m\)条边的一张有向图和起点终点.对于每条边求其是否是最小割的可行割/必须 ...

  7. JS获取contextPath的方法

    function getContextPath() { var pathName = document.location.pathname;    var index = pathName.subst ...

  8. Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings.

    今天新建一个spring web项目,发现报错了.问题如下. 排除了网络问题,找到了解决办法.打开设置,点击check connection 输入 https://start.spring.io 点击 ...

  9. 11.2.0.4 ORA-15025 ORA-27041 IBM AIX RISC System/6000 Error: 13: Permission denied

    ASM device error ORA-27041 ORA-15025 ORA-15081 (Doc ID 1487475.1) 描述总结:数据库的alert中发现大量ORA-27041 ORA-1 ...

  10. 微服务架构理论&SpringCloud

    一.什么是微服务? 微服务是一种程序架构模式,它提倡将单体应用程序划分成若干的小服务模块,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制 ...