关于运行时菜单与文件对话框的使用

2019-07-17 12:09发布

本帖最后由 llikers 于 2014-9-22 17:14 编辑

就是自定义了运行时菜单,选项是加载本地声音文件以供处理。
具体实现方式是:用生产/消费者模式,一旦选择菜单事件产生,项标识符就作为选择器,当点击加载的菜单项,加载操作相应分支就执行,加载通知就入队列
出队列时条件结构会跳到对应分支,文件对话框就是跳出……


——————————以上是理想的结果————————————————————————
问题是,点了自定义菜单项以后,文件对话框不会跳出

文件对话框 文件对话框
self.rar 下载积分: 积分 -1 分
250.91 KB, 下载次数: 143, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
llikers
1楼-- · 2019-07-18 05:23
imcu2007 发表于 2014-9-19 10:26
附件你看一下,你的问题在于,还没有吃透队列状态机的执行,可能你用了一个封装好的基于字符串数组的状态机 ...

不过我已经知道问题所在了,非常感谢
imcu2007
2楼-- · 2019-07-18 06:46
==========================================

VoiceSignalAnalysis.zip 下载积分: 积分 -1 分

181.37 KB, 阅读权限: 10, 下载次数: 24, 下载积分: 积分 -1 分

llikers
3楼-- · 2019-07-18 07:20
imcu2007 发表于 2014-9-19 11:28
==========================================

再请教一下,还是上面的程序。
虽然不存在对应分支的状态输入导致程序一直运行在默认分支
但是在这种状态下,在另一个循环产生的事件操作就不会被响应吗?
难道此时只有在当前运行循环内的操作才是有效的?
我调试了下,好像是这样,但是原理是什么呢……
imcu2007
4楼-- · 2019-07-18 08:10
因为根源在于,你的LIFO.vi是一个last in first out的队列,压入的消息队列总是插入队列的最前面,虽然你的菜单被压入了,但是永远也不会排到他。
如果你把入队列类型变成first in first out ,就可以响应了
llikers
5楼-- · 2019-07-18 09:32
 精彩回答 2  元偷偷看……
pallidmask
6楼-- · 2019-07-18 15:22
受益匪浅,谢谢分享

一周热门 更多>