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

回答网友一个问题:“我设计了一个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程序代码如下:

在Google Wave上讨论LabVIEW问题

如果还不了解 Google Wave,点击后面的链接查看 Google Wave 的各种介绍。需要 Wave 的邀请,可以在这里留下 Email。

最近公司同事都积极的开始用上它了。在我看来,Google Wave 取代或整合 Gmail 是迟早的事,已经在用 Gmail 的兄弟姐妹,赶快来熟悉一下新系统吧。但 Wave 会不会整体取代传统 Email 就很难说了。商业公司对待更换 Email 系统这样的决定会非常的保守。毕竟,它的影响面实在太广了,公司的营运时刻也离不开 Email。而且,很可能会有一大堆的数据库、服务应用等于 Email 系统绑定在一起。移植的工作量极其巨大。就说我们公司吧,使用的 Loutus Notes 系统。Notes 做的真的很烂,用过的人没有不骂的。可是抱怨了十几年,我们公司也还是在坚持用着。

但不论怎样,Wave 的出现给了大家提供了一条新的交流途径。我的 Wave 帐号和 Eamil 是同一个:ruanqizhen@gmail.com,需要加我的话题尽管加:)。 如果有兴趣在 Wave 上讨论 LabVIEW 问题,可以登录 Wave 后加入这个帖子“试验在Wave上讨论LabVIEW问题”,获得所有LabVIEW讨论者的名单。打算讨论《我和LabVIEW》这本书的问题,可以加入“《我和LabVIEW》讨论区