最近一直在写一个winform程序,对各类文档文件,以及压缩包的内容进行关键字检测。
模型出来之后,执行了一下,发现连续测试后,会有内存不足的问题,导致程序面假死。脑袋懵逼了两天。
回头看我的变量容器List,使用的是静态变量,思路如下:
上图是修改之后的 最初为 : private static List<Inform_Model> Model_List =new List<Inform_Model>();
但是!
static静态全局变量的生命周期是跟随程序结束而GG的;
静态方法,调用静态变量···这些全都吃在内存中,跟着程序手拉手一起走···
所以我猜想是Static修饰符被滥用的原因导致我的程序假死!
经过测试,去除滥用的Static修饰的全局变量,的确没在出现界面假死问题,速度上其实也感觉不出差别!
总结一下:为了优化而优化,没有考虑到机器本省瓶颈,过之而不及!
关于winform程序界面假死问题:
1.断点跟进看看是不是那里出现了死循环;
2.变量定义的问题,例如我上面的错误····导致内存不足。
Ending:码农界的萌新,如果有不对之处!万望指正!