lizf2019 发表于 2022-3-26 18:40

【C#问题】程序占用内存陡崖式上升

工程源码:https://k-n.lanzouw.com/iFLqy023gihc如图
只是在搞一个模拟闹钟的小软件,不知道什么原因
调试的时候发现占用内存会一直增大,最大能到2G
程序流程(clock.cs中):
窗体加载后新建线程showtime——>
每80毫秒调用一次settime——>
获取小时、分钟信息,改变picturebox中图片
<发现,程序会不断增大内存占用,且sleep时间越短,内存增大越快>
1.求助大佬们如何修改能够正常运行(增大的内存到底是怎么产生的)
2.还有个小问题,项目中我写的数码管控件好像一拖到窗体上VS就崩溃重启
[这个是项目文件]
工程源码:https://k-n.lanzouw.com/iFLqy023gihc

xiaovssha 发表于 2022-3-26 21:00

是不是图片一直读啊,要等自动回收

lichunfeng 发表于 2022-3-26 21:09

应该是一直读图片到内存内存没释放,先一次性把图片读出来存到数组,然后读取时间显示就完了......猜测是这样,不太懂c#

AltRick 发表于 2022-3-26 21:15

加载图片不要以文件形式读取,添加到资源文件里引用

lbh3925695 发表于 2022-3-26 21:16

加载图片没释放导致,新加载之前来一句,picturebox.image=null试试

jidesheng6 发表于 2022-3-26 21:16

图片对象读取完要及时释放,使用dispose及时释放掉,而且不明白为啥你要用while true去做,死循环是最恐怖的,你可以使用timer空间来定期执行,while循环估计是罪魁祸首

落红护花 发表于 2022-3-26 22:15

读完图片要dispose

kvstone 发表于 2022-3-26 22:16

变量用using

aonima 发表于 2022-3-26 22:55

断点调试啊

tencentma 发表于 2022-3-26 22:57

lbh3925695 发表于 2022-3-26 21:16
加载图片没释放导致,新加载之前来一句,picturebox.image=null试试

确实,这个内存占得太多,没释放
页: [1] 2 3
查看完整版本: 【C#问题】程序占用内存陡崖式上升