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]);没有清理干净内存?
展开
 我来答
百度网友ce7f3ccb4
推荐于2017-09-04 · TA获得超过1950个赞
知道大有可为答主
回答量:2299
采纳率:0%
帮助的人:1897万
展开全部
你只是移除了!!没有释放啊!!
while (panel1.Controls.Count > 0)
{
panel1.Invoke((Action)delegate
{
Control C=panel1.Controls[0]);
panel1.Controls.Remove(C);
C.Dispose();
});
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Heero__Yuy
2015-04-24 · 超过22用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:29.6万
展开全部
这个最好是看下添加控件部分的代码,主要是创建实例的部分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙的猫
2015-04-24 · TA获得超过447个赞
知道小有建树答主
回答量:562
采纳率:73%
帮助的人:266万
展开全部
remove 又不回收内存
该有引用的还是要引用到对象上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式