C# WinForm 不抱错,自动退出的情况

C# WinForm 不抱错,自动退出的情况,第1张

这种有多半是由于线程冲突造成的。多半涉及到你线程中 *** 作的对象的“释放”没处理好。

(你可以打开此程序,然后到“任务管理器”中查看此程序的“线程数、IO读取写入、“GDI对象”、“内存占洞尘用”等信息,是否碧中正常。记录下数据,然后程序开几悔颤山分钟后,再看看。)

导致winform程序崩溃原因如下:

1、如果WinForm程序中使用了线程,而线程调用的代码中会抛出异常,该异常没有任何Try块处理芦手。就会导致程序从主线程中跳出,导致WinForm程序突然崩溃性关闭。

2、程序读写某些外部喊哗运资源郑梁,比如数据库、串口、并口、网络等。当这些资源发生堵塞或者出现问题,有可能会导致WinForm程序长时间处于等待状态,程序就会类似于死机现象。

3、写程序的时候,程序出现逻辑错误,导致死循环,或者线程死锁。如果该程序是在主线程中,就会导致WinForm程序死机。

直接退出是你岩神的程序后台出现错误或是触发了异常所致,鉴于你同时用了timer和线程去刷新listView数据,可能是你创建线程刷新数据那里出错了~这个需要具体调试,但是我想说的是你的线程和timer

做的是同一件事情,timer本身就是实时去检测并刷新listView数据源的,socket无非是在接受到消息时刷新而已不是实时检测,你为什么要创建线程去刷新,每次接收到消息创建一个线程,用完之后又得销毁,之后模巧收到消息又得重复同样旦枣键的创建-销毁,浪费资源不说,还那么麻烦,你为什么不把刷新数据源封装成一个公共方法,timer里调用,当socket接收到消息时再调用即可,都可执行又不冲突~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12354644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存