今天在学习生产者,消费者结构,遇到个问题:
当按主循环中的“停止”按键,后面两个子程序能够正常关闭。
当按子程序2的“停止”按键,子程序1和子程序2也能正常关闭。
但是当我按子程序1的”停止“按键时,只能把子程序1关闭,另外2个都不能正常停止,最让人奇怪的是当我把子程序2高亮显示的时候,再去点击子程序1的”停止“按钮,后面两个子程序又可以正常关闭了。
万能的”电子发烧友“啊,请帮忙指点迷津呀。
我保持了低版本的程序!!!!!
-
-
-
-
生产者消费者高级应用 文件夹.zip
下载积分: 积分 -1 分
131.53 KB, 下载次数: 152, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1.按下全局停止按钮后几乎是所有VI里的同时作用的,就像多线程可以理解为同时进行一样。
2.子程序2里的处理循环在开始一会后只不停的执行子程序1里丢来的“Convert F to C”命令,可以说子程序1不往里面丢命令了它就等在那里了。
3.你点击子程序1里的停止后,并不是立马让全局变量起作用,而是往队列里丢Exit,此时子程序1里执行的是这个Exit命令,完了后并把全局变量改变。所以此时子程序1忙自己的并没有给Q2任何指令,子程序2里的处理循环不会动。这时候改变全局变量也就没任何用了。它是有一个流程执行的先后顺序,并不是全局变量起作用的先后顺序。
4.全局变量这东西还是建议少用,虽然很方便,但是如果程序很大,子VI很多,到时候哪里出问题都很难去查的。
评分
查看全部评分
一周热门 更多>