NI LabVIEW,CVI,数据采集等产品讨论区

cancel
Showing results for 
Search instead for 
Did you mean: 

阻塞程序在LV的实现

最近再次看了消息队列,突然发现消息出队这个函数的强大,以前一直是直接拿过来使用,没有关注它内部是如何实现的,现在想模拟一个这样的东西。各种方法都想过了,都不知道它是如何实现的。它在有消息时,立即返回消息,没有消息时,就在那里死等,但是又没有占用CPU,这就奇怪了,既然是死等,按照传统的概念,里面一定有一个WHILE循环在哪里运行才对。但是这样的话,多申请几个出队函数,CPU就挂掉了,但是我实验了一次申请几百个出队的函数,CPU就像不知道有这个循环一样,所以我判断内部一定不存在这个循环,只有可能存在LV内部的一个总的循环内,当检测到这个队列有消息时,而且有消息出队申请时,就将结果返回给这个出队的地方。但是出队这个函数是怎么实现在这里死等的呢?

我尝试想用调用VI时挂起这个属性,但是挂起后,这个会弹出该VI的界面,而且后台也没有让它返回给调用者的命令,只有在前面板可以操作。

有没有其它的方法可以实现这个类似的功能,BU占CPU这个功能真的强大。

0 Kudos
Message 1 of 3
(535 Views)

目前我用VI的暂停属性实现了一个类似的效果,但是当程序运行到这个暂停的VI时,会弹出这个暂停VI的界面,这点好像目前无法解决,我把源码附上来,希望有高手帮忙解惑,看看有没有其它可行的方案。

0 Kudos
Message 2 of 3
(396 Views)

这么好的贴子咋没有人回复啊,是我问的态弱智了,还是大家都不知道,或者LV根本就实现不了

0 Kudos
Message 3 of 3
(358 Views)