问题描述
- 小白,写了个无限循环,一旦调用便会很快崩溃
-
想把一个单次识别函数改为连续识别,核心代码不会修改,所以直接用了无限循环
bool flag=false;
……//事件触发
flag = !flag;
for (int circle = 0; circle < 1; circle--){
if (flag)
{
……//识别程序
}
circle = 0;
}
有什么好的改进方式吗?明明每次识别后都会释放,为什么运行时间一长还是会崩溃?
解决方案
bool flag=false;
……//事件触发
flag = !flag;
for (int circle = 0; circle < 1; circle--)
{
if (flag)
{
……//识别程序 -- 这里判断之后
}
circle = 0; -- 这里又变成0 了,你是想永远这么循环下去么。。
}
解决方案二:
是不是这个意思?
while (flag)
{
if (flag)
{
...
flag = ! flag;
}
}
解决方案三:
无限循环?你要是出不来,肯定内存溢出
解决方案四:
1.改变circle的值,使循环能够执行完毕
2.break,跳出循环
解决方案五:
识别程序本身又没有内存泄漏?它有没有dispose方法,如果有调用下。
解决方案六:
可以单独把这段代码摘出来,做个小程序,放那跑,如果没有崩溃,就说明代码出错在你识别程序里面。
看了一下,给的这段代码没有问题,但是CPU占用率应该会居高不下,如果CPU一直很高,可以在里面加个Sleep函数。
时间: 2024-10-19 05:46:22