C# WinForm 动态添加-删除控件内存未释放
根据需求要在Winform的一个panel中动态的添加控件,处理完后删除(子线程中操作):for(n){while(panel1.Controls.Count>0){pa...
根据需求要在Winform的一个panel中动态的添加控件,处理完后删除(子线程中操作):
for(n)
{
while (panel1.Controls.Count > 0)
{
panel1.Invoke((Action)delegate
{
panel1.Controls.Remove(panel1.Controls[0]);
});
}
panel1中根据条件动态添加控件
……
处理
……
}
跟踪发现内存持续增加。难道是因为panel1.Controls.Remove(panel1.Controls[0]);没有清理干净内存? 展开
for(n)
{
while (panel1.Controls.Count > 0)
{
panel1.Invoke((Action)delegate
{
panel1.Controls.Remove(panel1.Controls[0]);
});
}
panel1中根据条件动态添加控件
……
处理
……
}
跟踪发现内存持续增加。难道是因为panel1.Controls.Remove(panel1.Controls[0]);没有清理干净内存? 展开
3个回答
展开全部
你只是移除圆瞎衫了!!没有释放橘腔啊!神凳!
while (panel1.Controls.Count > 0)
{
panel1.Invoke((Action)delegate
{
Control C=panel1.Controls[0]);
panel1.Controls.Remove(C);
C.Dispose();
});
}
while (panel1.Controls.Count > 0)
{
panel1.Invoke((Action)delegate
{
Control C=panel1.Controls[0]);
panel1.Controls.Remove(C);
C.Dispose();
});
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
这个最好是看下添加控件部分的代码,主要是创建实例的部分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
remove 又不回收内存
该有引用的还是要引用到对象上
该有引用的还是要引用到对象上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询