大哥,以下引用的是你8月12号的提问:
每隔一段的时间就 datagridview.rows.clear(),然后再用datagirdview.row.add添加数据。但是每次这样刷新后好像是内存不能够被释放,导致该程序的内存使用率越来越高,最后直至崩溃。
请问怎么将内存释放?
现在小弟我也遇到了这个问题,麻烦大哥帮帮忙,给点解决思路,谢谢了。
我现在只有20分,全给了。
我在程序中是这样操作的:
1。从串口接收8个字节的数据
2。把数据添加到DataGridView中
3。满20行数据后,清空表格中数据。
C# 内存释放
答案:3 悬赏:40
解决时间 2021-04-28 02:34
- 提问者网友:践踏俘获
- 2021-04-27 08:38
最佳答案
- 二级知识专家网友:如果这是命
- 2021-04-27 09:10
datagridview.rows.clear()
只是清除当前的datagridview的数据
并没有清除内存的功能
建议是你看看你的数据连接的时候有释放干净没。
------------------------------------------------
问题应该在你的窜口接受数据那个方法。
你优化一下吧!
只是清除当前的datagridview的数据
并没有清除内存的功能
建议是你看看你的数据连接的时候有释放干净没。
------------------------------------------------
问题应该在你的窜口接受数据那个方法。
你优化一下吧!
全部回答
- 1楼网友:duile
- 2021-04-27 10:05
调用datagridview.rows.clear()以后
再调用一下GC.Collect(),手动让垃圾回收器回收一下试试
- 2楼网友:无字情书
- 2021-04-27 09:25
1、这个流程确实构造了许多新的对象(panel、bitmapimage、button),所以内存上涨是必然的;
2、其次,由于c#托管的原因,有些临时内存在频繁的循环中可能来不及释放,你可以在每次循环结束时调用gc.gettotalmemory( true )来强制回收当前的垃圾;
如果强制gc还不行的话,那说明你的代码就是要飚内存,那就得改你的流程了,没其他的办法了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯