多线程崩溃的几种原因

多线程崩溃的几种原因,第1张

.

如果WinForm程序中使用了卜迹线程,而线程调用的代码中会抛出胡宴异常,该异常没有任型做并...

2.

还有就是程序读写某些外部资源,比如数据库、串口、并口、网络等。当这些资...

3.

写程序的时候,程序出现逻辑错误,导致死循环,或者线程死锁

只有线程处理出错才会造成奔溃,简单举个例子,线程刷新控件,你用整个父容器去invork,invork有Begin和end,前提条件还需要你已经创建了句柄,当窗体启动后,系统还会在后台启动窗体重绘,这时候线程开启了子线程,如果他快过主线程启闷枝动,那么它就会报从不创建句柄的控件更新ui错误,你不抛出强行执行,就会造成系统蚂渗敏奔溃。所以控件少用invork,传值用传值对象去Post,界面使用传值方法,回调你要做接口。另一个典型的错误来自于,你创建了N个子线程,你不确定它到底有没有全部完成,主线程干掉了,对不起,子线程还没完呢?你都不处理一下,也不abort也不kill,程序就会溢出奔溃......周期性奔溃你用计喊袜时器,子线程没有闭环,直接new一个对象然后直接start,就没有处理abort机制,它能不奔溃吗?有些ui刷新动作,你不注意句柄和控件和容器的关系,它绝对也是要奔溃的。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存