Matlab app应用总是假死,我想静静~~~

接着说app designer,上篇说到可以用一个在app之外调用for 循环来实现“实时”接收数据。

可是,实际项目中发现一个问题。就是在循环中,如果一段代码调用app中的数据,从而产生大量的数据通信的时候,就会产生matlab假死的情况。例如,在for循环中,首先,请求已连接设备更新测量数据,然后,再把接收到的测量数据在指定app中plot出来。然而,这时候for循环在app之外,还在要求下个已连接设备更新测量数据,从而产生冲突。

“不知道怎么办”的图片搜索结果 Matlab也不知道了……

这时候就产生了app“假死”状态,看上去,app界面的数据还在不停的更新,可是所有的按钮点击都没有反应,就是关闭窗口也无法实现,只能关闭matlab或者appdesinger……

相关图片

整个app已经进入收尾阶段,出现了这个大bug真的是很无语。 难道Matlab不适合做这方面的应用~~~~???!!!

“我想静静”的图片搜索结果

静静告诉了我们这个问题的解决方法: 让他们其中一方静静。对的,一个先过,另一个再过。例如,在plot数据中加入pause() 函数,让matlab静静。等我画完了,你在继续。这样,就轻松解决了。

这个缺点就是拖慢了整个app的运行速度,如果大量通信数据,而且实时度要求很高的话,就比较难办了。 不过,就一般项目而言,慢点总比不走好~~~

相关图片

后yu: 这其实跟计算机系统中,进程死锁的原理差不多,当两个进程都对同一块内存空间进行访问,就会产生进程死锁,进入卡机状态。

News Reporter
Dr. Lu

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

跳至工具栏