主题:显示屏运行一段时间不刷新了

  共有32447人关注过本帖    
帅哥哟,离线,有人找我吗?
shtupc
1楼 信息 | 搜索 | 邮箱


加好友 发短信
显示屏运行一段时间不刷新了  发帖心情 Post By:2013-2-11 17:05:00   [只看该作者]

我用Em9170开发,显示屏是800*480,运行我的程序正常,但连续运行10几个小时候,屏幕就不动了,无论是触摸屏还是用鼠标操作,就跟死机一样,但实际程序没有死,对外的通讯(包括串口和网络)都正常,这可能是什么原因,怎么解决。

 


  单帖管理 | 引用 | 回复 回到顶部
x10
2楼


  发帖心情 Post By:2013-2-13 19:10:00   [只看该作者]

新年好!
可以通过远程工具查看你的进程及包括的线程,估计是你的显示线程被挂起了。负责喂狗的监视显示应与各个线程有数据交换,确认是否正常工作,这样异常时可导致系统重启,从而恢复系统的所有功能。

  单帖管理 | 引用 | 回复 回到顶部
客人
3楼


  发帖心情 Post By:2013-2-15 7:30:00   [只看该作者]

谢谢了!

不是特别明白,我用的是VS2005中的VB.net开发,就是使用自带的显示控件(如文本框,列表框等),需要哪种远程工具可以查看进程?看到运行的线程后如何判断是显示进程,只看到进程能判断是否有数据交换么?实在搞不清楚,麻烦能说的详细些么?


  单帖管理 | 引用 | 回复 回到顶部
客人
4楼


  发帖心情 Post By:2013-2-15 7:37:00   [只看该作者]

远程工具找到了,VS2005自带就有,是看到了一大堆进程和线程,然后就不知道怎么办了


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
5楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-2-16 9:13:00   [只看该作者]

屏幕不动是整个系统都不动了,还是只是你的程序界面不动了,而你的程序又恰好是全屏状态。
因为你的其他功能是正常的,我猜测是后一种情况。程序界面卡死,最大的可能是在某个TIMER里面死循环了,或者某个函数处于阻塞状态,然后你的串口和网络的工作是在另外的线程里面完成的,所以主线程卡住了并不影响支线程的运行。
你先用远程工具的进程查看器,找到你的程序名字的exe,中止它,看系统是否还是正常的。如果系统正常的,就只能慢慢检查程序代码了,看是不是有用到timer,里面哪个地方是不是可能导致卡死。

  单帖管理 | 引用 | 回复 回到顶部
客人
6楼


  发帖心情 Post By:2013-2-16 9:40:00   [只看该作者]

感谢!

我的程序只是界面不动,系统本身是正常的,如开始按钮还是可以正常点击。

我的程序是用的Timer,完成串口通讯和网络通讯功能,为了系统调试方便,没有使用多线程,我现在比较奇怪的是,程序一开始运行是正常的,连续运行几个小时后才会出现这种情况,查了很多资料,有人提出是内存使用后没有正确释放,导致这种现象出现,但程序中就是常规的变量定义,没有什么特殊的分配内存的命令(使用VB.Net),郁闷死了。


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
7楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-2-16 9:55:00   [只看该作者]

这种情况可能性很多,也有可能是内存不够,然后申请空间失败,然后你在TIMER里面做的死循环申请空间。
总的来说绝大部分可能就是你的timer卡死了,你可以发下你TIMER的代码给我看看。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
shtupc
8楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-2-18 16:23:00   [只看该作者]

仔细检查了一下,貌似是文件操作的问题,在timer里面有比较频繁的文件写操作,调整了一下,好像可以了,再连续运行一段时间看看。

感谢了!


  单帖管理 | 引用 | 回复 回到顶部

返回首页

显示屏运行一段时间不刷新了

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: