求助,写了个修改密码的程序,可是运行完会弹出重置VI的提示,求指点程序问题

2019-07-17 13:15发布

file:///C:UserscaoxuanAppDataRoamingTencentUsers251452836QQWinTempRichOleRJ8%AC}$~59WTM$7W%L9NB3.png

程序图 程序图
提示图 提示图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
thasky
1楼-- · 2019-07-17 13:33
求大神指点一二啊,谢谢
thasky
2楼-- · 2019-07-17 15:35
求大神
静夜style
3楼-- · 2019-07-17 20:38
 精彩回答 2  元偷偷看……
thasky
4楼-- · 2019-07-18 00:26
静夜style 发表于 2017-7-13 08:50
没什么问题,重置vi的提示并不影响程序功能,而是你vi占用了太多资源没有及时释放由系统的资源管理重置该vi占用的资源,建议你的for循环添加一个小的延时。

好的。我试试,谢谢!!!
mjc2007
5楼-- · 2019-07-18 05:41
静夜style 发表于 2017-7-13 08:50
没什么问题,重置vi的提示并不影响程序功能,而是你vi占用了太多资源没有及时释放由系统的资源管理重置该vi占用的资源,建议你的for循环添加一个小的延时。

从资源管理器中发现CPU和内存使用都正常,而且偶发出现程序卡死,强制关闭就出现重置VI,请问什么原因呢?
静夜style
6楼-- · 2019-07-18 06:16
本帖最后由 静夜style 于 2018-1-5 14:53 编辑
mjc2007 发表于 2018-1-4 19:50
从资源管理器中发现CPU和内存使用都正常,而且偶发出现程序卡死,强制关闭就出现重置VI,请问什么原因呢?

强制关闭VI也不是立即就结束所有的ni相关进程,当点击了关闭,ni自带的垃圾处理功能就会运行,用来处理运行时产生的资源消耗,像一般的c,c++等语言需要自己编写垃圾处理的,就拿打开文件来说吧,labview允许你调试的时候只打开文件而不关闭,并且在你结束之后自动调用结束这个功能,这个在lv开发环境下是可取的,c,c++肯定是不允许的。另一个例子就是关于labview中的while循环的问题,当你有一个while循环没有任何退出条件,但是你又结束了当前while循环所在的vi,此时labview是不会去结束你的那个while循环的,而是把那个循环当做一个单独的线程去运行,但是有可能该while循环内部调用了已经被结束的vi的控件,那么此时while循环就访问了一块非法的内存,那么labview就需要去针对这个while循环做异常结束,也就是看到重置vi这个提示。

关于程序优化的建议,所有的循环尽可能给出退出的条件,而不是无休止的一直执行,关闭vi前面板的时候,请一定要结束所有的相关的循环,避免自动变成后台的僵尸进程。推荐使用关闭labview而不是关闭vi,关闭labview会关闭所有的子进程。适当的禁止前面板自动刷新,前面板最好用事件结构处理,但是处理前面板的时候最好关闭延迟响应,前面板按钮等控件所触发的事件最好用子VI去调用,这样不会出现前面板假死。数据传递到子VI比直接拖一大堆框图节点效率更高一些,并行的几个循环一定要注意变量值的变化,轮询模式的标准状态机一定要给while循环加至少50ms延时。事件结构千万不要嵌套,也不要在同一个vi中使用两个或更多的事件结构,一个vi最多一个事件结构,否则很大概率会出现事件无响应。条件结构嵌套最好不要超过3层,如果超过了,请话卡诺图重新整理逻辑,否则很大概率得不到正确的结果。

一周热门 更多>