LabVIEW-UI解耦
一、UI线程
指LabVIEW用户界面执行系统(User Interface Execution System)的唯一线程。负责处理前面板控件的绘制、刷新、用户交互事件(鼠标、键盘)、系统消息循环以及所有与前面板直接相关的操作。该线程阻塞将导致界面无响应。
UI线程(即VI属性中首选执行系统设置为用户界面执行系统的VI)在设计时只包含以下任务:
○ 前面板控件的绘制与刷新;
○ 响应用户交互事件(如按钮点击、菜单选择、控件值修改);
○ 弹窗(对话框)的显示与处理;
○ 通过队列、用户事件等异步机制接收后台模块的UI更新请求并执行。
二、后台业务线程
指在“标准”(Standard)、“仪器I/O”、“数据采集”、“其他1”(Other 1)、“其他2”(Other 2)等非用户界面执行系统中运行的线程。用于执行测试流程、外设通信、数据保存等与用户界面无关的任务。
后台业务线程(即VI属性中首选执行系统设置为标准(Standard)、仪器I/O、数据采集、其他1、其他2执行系统的VI)在设计时只包含以下任务:
○ 测试流程控制;
○ 外设通信与数据采集;
○ 数据保存(含本地及网络路径);
○ 其他与用户界面无关的计算或I/O操作。
○ 约束:禁止在后台业务线程中直接调用任何属性节点或VI Server操作来读写控件。
三、强制UI线程操作识别与规避清单
下面以表格形式列出常见的强制UI线程执行的(禁止在后台业务线程中调用的)函数、节点及VI。





浙公网安备 33010602011771号