跳到主要内容

如何在程序中同时弹出多个子VI的界面,各自运行互不影响

· 阅读需 2 分钟

回答网友一个问题:“我设计了一个labview界面子VI,我想在主VI中多次调用该界面VI(同时执行,单独分配内存),并显示出多窗口,该如何设置?我尝试将子VI属性设置成可重入,仍无法解决。”

这个问题其实挺常见的。若需要子VI打开多份实例,子VI必须是可重入的。所以第一步要把子VI设置为可重入。但仅仅这样还不够,主程序运行到子VI处,把子VI打开后,会一直等在这里,知道子VI运行结束,才继续执行主VI后续的代码。主VI既然已经停在这里了,自然不会再继续去打开其它子VI。解决的办法是在调用子VI的地方,改为动态调用,并且不等待子VI运行结束。这样一来,主程序运行到这里,将子VI调起后,立即执行后续代码,又可以去调用其它的子VI了。

需要注意的是,用于子VI是可重入的,需要给“Open VI Reference”函数设置一个值为“8”的Options参数。主VI程序代码如下:

全书: https://labview.qizhen.xyz/