您提到的问题确实存在。在非重入VI中,无法直接进行递归调用自身。非重入VI是指该VI在同一时间只能被一个调用者执行,无法同时被多个调用者执行。
要在非重入VI中实现递归调用,可以使用以下方法:
1. 将递归算法转换为循环算法:将递归调用的部分改为循环结构,通过迭代来实现递归的效果。这样就可以在非重入VI中进行调用。
2. 将递归调用的部分提取为一个可重入的子VI:将递归调用的逻辑单独提取为一个可重入的子VI,并通过使用动态分配或共享重入来实现递归调用。然后在非重入VI中调用该子VI。
3. 使用全局数据来实现递归效果:将递归调用所需的数据存储在全局变量中,在每次调用时更新该全局变量,并在非重入VI中使用循环结构进行调用。
以上方法都可以在非重入VI中实现递归调用的效果,选择适合您的情况的方法即可。
您提到的问题确实存在。在非重入VI中,无法直接进行递归调用自身。非重入VI是指该VI在同一时间只能被一个调用者执行,无法同时被多个调用者执行。
要在非重入VI中实现递归调用,可以使用以下方法:
1. 将递归算法转换为循环算法:将递归调用的部分改为循环结构,通过迭代来实现递归的效果。这样就可以在非重入VI中进行调用。
2. 将递归调用的部分提取为一个可重入的子VI:将递归调用的逻辑单独提取为一个可重入的子VI,并通过使用动态分配或共享重入来实现递归调用。然后在非重入VI中调用该子VI。
3. 使用全局数据来实现递归效果:将递归调用所需的数据存储在全局变量中,在每次调用时更新该全局变量,并在非重入VI中使用循环结构进行调用。
以上方法都可以在非重入VI中实现递归调用的效果,选择适合您的情况的方法即可。
举报