说包含未初始化移位寄存器的VI永远不会从内存中删除是否正确?

时间:2015-07-26 08:36:47

标签: labview

如果VI的引用已关闭,执行完毕等,VI将从内存中删除... 其结果是删除资源引用,...由于自动垃圾收集。

似乎没有未初始化的SR的VI没有从内存中删除,所以我可以将这个VI中的引用句柄存储为TOP LEVEL vi并且它们总是存活(即使它的调用者已关闭但不是labview环境)。这是对的吗?

1 个答案:

答案 0 :(得分:1)

您明确打开的大多数引用的规则是,当创建引用的层次结构空闲时,引用将自动关闭。层次结构由顶层VI确定,因此如果VI A调用VI B且VI B获得新的队列引用,则当VI A停止运行时,该引用将自动关闭。

请注意,这不会影响实际的引用句柄本身(它只是一个32位值),而是影响该引用与使用它的API的有效性。这意味着如果您打开层次结构A中的引用并将其保存在VI B中的SR(与层次C共享),然后关闭层次结构A,则SR中的值仍将存在,但您赢了&#39 ; t能够使用它。

另请注意,以编程方式打开VI的引用并运行它将使VI成为顶级VI。