本帖最后由 Scadao 于 2021-11-24 17:28 编辑 行业格言: 属性节点是同步的,强制进行线程切换,因此成本很高。 大量的属性节点只能在 UI 线程中运行。整个操作系统只有 1 个 UI 线程,因此可能有很多进程在争夺它。因此,您可能必须等待执行。此外,在 UI 线程中运行所有内容会限制/停止并行化。 LabVIEW冠军回言: UI 是为用户服务的,而不是为数据服务的。在LabVIEW中,“线是变量”(简化)。 干净的程序设计很少使用局部变量。始终可以直接连接到终端,您只需要发挥创意,不要将它们隐藏在结构堆的深处。(我上面的例子没有!)。保持和更新移位寄存器中的重要值,并在顶层图循环上读写终端 写入终端或终端的局部变量只会更新传输缓冲区(非常有效!)并且 UI 线程偶尔会更新指标(您的眼睛看不到每秒一百万次更新,因为屏幕刷新率是慢得多,UI 线程不需要执行得比这更快)。如果使用相同的代码并通过值属性节点更新值,则每次写入都需要切换到 UI 线程,更新值,并切换回普通线程进行下一次迭代。这要贵几个数量级!(顺便说一句,您可以将终端切换到“右键单击...高级...同步显示”。然后写入终端将停止数据流,直到前面板更新,给您类似的性能影响与 value 属性一样,所以不要这样做!!)。 当然,在这个演示中,甚至不将终端放在循环中会更合理。 |
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.