在许多项目中,我们都用到了子面板+VI的动态调用,来使程序运行更快。因为动态调用的VI是一个单独的线程,在不用的时候可以选择关闭,这样就不会占用内存。如果不用动态调用,只有子VI的方式调用它,只要主线程没有结束,它运行时加载的东西是不会释放的!这也是为什么动态调用VI可以提高软件的运行速度!
而子面板的作用是把一个跟本VI(主进程)没有关系的一个VI嵌套在子面板上!
说得简单点就是,动态调用就是通过VI的属性来运行和停止VI。此外异步调用也是提高软件运行的一大神器!
案例说明:MainVI(也就是主进程)通过按钮,来实现切换动态1.vi和动态2.vi显示在子面板上,如果要从动态1.vi切换到动态2.vi,则在打开动态2vi的同时,关闭动态1.vi.从而实现对内存的优化(之加载当前使用VI的内存)
案例只是说明了下,如何使用字面板+VI动态调用!由于我的动态1vi和动态2vi都很简单,所以是看不出来内存优化的效果,但是实际的项目上,可以切换显示很多字VI,每一个VI都很复杂(如:子面板调用手动界面,自动界面,参数设置界面,校准界面,数据界面等)。用这种方法就能体现它的威力了!
9
|
|
|
|
|
|
-
小科ka
2020-8-27 23:23
是的,框架性的东西,程序到后面就是考虑性能和稳定性!
|
|
|
|
|
-
小科ka
2020-8-31 10:45
肯定有优势呀!特别是复杂的框架!你想想如果你手动界面把很多东西都加载进的电脑的内存占用了CPU,在切换到自动界面时,你把手动界面加载的一些东西内存都释放了。自动运行的速度肯定有提升呀!
|
|
|
|
|
-
小科ka
2020-8-31 14:24
评论区我上传了源码
|
|
|
|
|
-
小科ka
2020-9-2 14:50
可能是电脑带了加密软件。那就传不了了!
|
|
|
|
|
-
小科ka
2020-9-2 14:50
可能是电脑带了加密软件。那就传不了了!
|
|
|
你好,请问大佬:这种结构在最后生成.exe或者程序的时候,应该怎样配置??把所有的VI程序都加载进去吗,但是这样,一旦运行,所有的VI就打开了,有什么好的办法吗?
|
|
|
|
|
LabVIEW中子面板 VI动态调用的使用 学习下
|
|
|
|
|
解压不了 ,学习下
|
|
|
|
|