现在程序运行一段时间后会卡死,整个屏幕都动不了了,能力有限,找不到原因出哪了?
程序中应该只有两个线程,一个UI线程(定时器产生的事件应该属于UI线程的吧?),一个有串口中断产生的线程,希望大家能够给我点解决思路!
14 个解决方案
#1
会卡死,是不是出现了无限循环或者占用内存太大导致了,好好检查下。注意细节
#2
检查下不要因为定时器产生了定时递归,还有事件不要重复添加。
#3
曾经做了小软件,用来检测当前的内存使用率,运行了大概4、5个小时后,内存的使用率没有变化!我问下哈,如果我有全局变量 a,在串口中断中 对a 进行赋值,在定时器中,对a取值,这样会不会出现卡死的状态啊?
#4
定时递归是什么意思啊?
#5
估计是线程死锁。
#6
线程死锁是怎么产生的呢?
#7
可以查看CE的进程管理器,查看内存使用是不是随着时间增加而一直增加
#8
做过一个小软件 进行监视了!!软件运行了3小时后 没怎么增加
#9
新的状况:昨天卡死了,然后过去按界面,怎么按都没反应,可是过了一段时间后,再去按结果又可以按了,程序也活过来了!这个是什么情况?
如果我有全局变量 a,在串口中断中 对a 进行赋值,在定时器中,对a取值,这样会不会出现卡死的状态啊?
如果我有全局变量 a,在串口中断中 对a 进行赋值,在定时器中,对a取值,这样会不会出现卡死的状态啊?
#10
是不是有联网操作的啊,联网操作会不会网络较慢(局域网也算)或是不通
#11
先加入log机制,进行分析。
#12
一定要注意,不要滥用定时器。如果是收到数据然后异步处理,这就是数据触发的,而不是什么定时器触发的。我们招聘的实习生,最喜欢用定时器,做出了无数让界面卡死的“时髦”设计,最后我们不得不一一删除这些垃圾代码。滥用定时器是他们最喜欢的偷懒思路。
该是什么触发就是什么触发,尽可能认真分析数据和控制流程、不要简单地想成定时。不要滥用定时器。
该是什么触发就是什么触发,尽可能认真分析数据和控制流程、不要简单地想成定时。不要滥用定时器。
#13
谢了,貌似是用了很多定时器,先去改改,希望有效
#14
我也发现这个问题,请问大哥这其中的原理是什么呢?为何会造成卡死呢?
#1
会卡死,是不是出现了无限循环或者占用内存太大导致了,好好检查下。注意细节
#2
检查下不要因为定时器产生了定时递归,还有事件不要重复添加。
#3
曾经做了小软件,用来检测当前的内存使用率,运行了大概4、5个小时后,内存的使用率没有变化!我问下哈,如果我有全局变量 a,在串口中断中 对a 进行赋值,在定时器中,对a取值,这样会不会出现卡死的状态啊?
#4
定时递归是什么意思啊?
#5
估计是线程死锁。
#6
线程死锁是怎么产生的呢?
#7
可以查看CE的进程管理器,查看内存使用是不是随着时间增加而一直增加
#8
做过一个小软件 进行监视了!!软件运行了3小时后 没怎么增加
#9
新的状况:昨天卡死了,然后过去按界面,怎么按都没反应,可是过了一段时间后,再去按结果又可以按了,程序也活过来了!这个是什么情况?
如果我有全局变量 a,在串口中断中 对a 进行赋值,在定时器中,对a取值,这样会不会出现卡死的状态啊?
如果我有全局变量 a,在串口中断中 对a 进行赋值,在定时器中,对a取值,这样会不会出现卡死的状态啊?
#10
是不是有联网操作的啊,联网操作会不会网络较慢(局域网也算)或是不通
#11
先加入log机制,进行分析。
#12
一定要注意,不要滥用定时器。如果是收到数据然后异步处理,这就是数据触发的,而不是什么定时器触发的。我们招聘的实习生,最喜欢用定时器,做出了无数让界面卡死的“时髦”设计,最后我们不得不一一删除这些垃圾代码。滥用定时器是他们最喜欢的偷懒思路。
该是什么触发就是什么触发,尽可能认真分析数据和控制流程、不要简单地想成定时。不要滥用定时器。
该是什么触发就是什么触发,尽可能认真分析数据和控制流程、不要简单地想成定时。不要滥用定时器。
#13
谢了,貌似是用了很多定时器,先去改改,希望有效
#14
我也发现这个问题,请问大哥这其中的原理是什么呢?为何会造成卡死呢?