首页 新闻 会员 周边

winform 程序卡死

0
悬赏园豆:5 [待解决问题]

winform 上位机程序,程序卡死,任务管理器关不掉。网上查了可能是死锁,程序里面使用了lock,而且调试的时候有一个task里的死循环不执行了。这个死循环应该是一直执行的。程序不是一开始就卡死的,一开始界面是可以动的,过了几分钟之后程序才卡死。
请教一下是什么原因?如何排查?

RReturn的主页 RReturn | 初学一级 | 园豆:113
提问于:2024-06-15 18:35

一般卡死是文件读取和高速加载文件时候卡,酷狗下歌呢,确实卡,4盒3.9G cpu都卡,硬盘还是固态

草丛有头猪 4周前

运行时 NEW 也卡

草丛有头猪 4周前
< >
分享
所有回答(2)
0

1、调试下,看死循环是否进行了运行;

2、添加Console。Writeline,用于输出,便于排查;

3、这个卡死,应该是死循环卡住了UI线程,直接调试,看CPU、内存使用率等等,看下原因;

lzhdim | 园豆:629 (小虾三级) | 2024-06-15 18:44

程序里是有几个死循环,但是都是在thread里面。而且一开始的时候这些死循环是在运行的。只有一个task的死循环没了。现在很难定位到问题在哪里,主要是不能重现。

支持(0) 反对(0) RReturn | 园豆:113 (初学一级) | 2024-06-15 19:43

@RReturn: 使用日志组件,记录线程运行的情况,你检查一下那个死循环,是否已经结束了或者有啥问题,,,你这些死循环里用Thread.Sleep(300);里吗?否则占用系统资源的。

支持(0) 反对(0) lzhdim | 园豆:629 (小虾三级) | 2024-06-15 19:50

@lzhdim: 每个死循环里面都有sleep,几十毫秒到几秒不等。估计只能记日志查看了。客户现场机器不太好调试。网上搜了还有一个方法就是查看dmp文件找死锁。目前还在研究。

支持(0) 反对(0) RReturn | 园豆:113 (初学一级) | 2024-06-18 11:52
0

死循环需要加 SLeep 再先进点可以加全局布尔变量开关

草丛有头猪 | 园豆:226 (菜鸟二级) | 2024-06-19 22:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册