请问,我动态加载的WebUserControl ,如何清理和释放?

hpn_cao 2006-07-18 08:16:10
我动态加载的WebUserCotrol ,是个复合组件 。
我如何把这个组件已经包含的子组件都释放了。
不然的话,随着我不断加载各种WebUserControl ,我的内存消耗越来越大了。
请问如何让内存维持恒定,没有泄漏?
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hpn_cao 2006-07-19
  • 打赏
  • 举报
回复
不好意思,我这个项目因为用了Ajax 。 因此我没有页面转向 。 几十个功能模块都是以插件加载的方式显示在唯一的Default.aspx页面中 。而且无刷新 。

因此需要自己手动释放。
还有,我即使调用了IDispose内存也没有减小 。
cat_hsfz 2006-07-19
  • 打赏
  • 举报
回复
如果你的WebUserControl没有调用有IDisposable的东西,应该不需要手动Dispose也不会导致内存越用越多,因为GC会帮你回收内存。其实每一次刷新页面,你的WebUserControl就被创建和回收一次,无论是动态创建还是静态描述的。

如果你有调用到IDisposable的东西,那就把WebUserControl也标记为IDisposable同时在Dispose中主动把你调用的IDisposable的东西Dispose掉。详细看MSDN中的说明吧。
kssys 2006-07-19
  • 打赏
  • 举报
回复
晕,现在不大可能泄露了。除非调用了传统的COM.

GC不知道什么时候才会运行。所以Dispose方法之后不一定会马上释放。
myminimouse 2006-07-19
  • 打赏
  • 举报
回复
测试一下看是不是有泄露
winner2050 2006-07-19
  • 打赏
  • 举报
回复
内存没有减小不一定没有释放.

你用了一天的电脑,晚会关闭所有程序,看看内存占用跟你刚刚开机的时候的区别.
kssys 2006-07-18
  • 打赏
  • 举报
回复
一般可以调用Dispose方法来标记它不再使用
shalen520 2006-07-18
  • 打赏
  • 举报
回复
内存消耗越来越大 != 泄漏

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧