资源释放的问题?

jl_ytl 2006-04-28 01:56:04
我做了一个用户控件A,在这个对象里new 了几个其它用户控件b1,c1。
问:我需要释放几个其它用户控件b1,c1吗?怎么释放,在什么事件里释放?
...全文
172 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqlez 2006-04-29
  • 打赏
  • 举报
回复
Ninputer 2006-04-29
  • 打赏
  • 举报
回复
用户控件如果你不手工释放的话,会跟窗体一起释放。

不用使用using,你可以在不想要的时候先从窗体的Controls集合中删掉他
接下来直接调用
(c as IDisposable).Dispose();
然后清除引用即可
jl_ytl 2006-04-29
  • 打赏
  • 举报
回复
针对用户控件,在什么事件释放?


using (YourClass YourObject = new YourClass ())
{
//对YourObject做操作
}
估计不行,我以后还要在父控件对这个控件操作。
Knight94 2006-04-29
  • 打赏
  • 举报
回复
如果要调用Dispose,则必须继承IDisposable接口,并提供相应的具体实现,否则一点儿意义都没有。
AlphaGroup 2006-04-28
  • 打赏
  • 举报
回复
不用释放吧
释放就用Dispose吧
sskset 2006-04-28
  • 打赏
  • 举报
回复
补充:你的class 必须继承 IDispose接口才能using和dispose
cowbird 2006-04-28
  • 打赏
  • 举报
回复
试试使用using
例如
using (YourClass YourObject = new YourClass ())
{
//对YourObject做操作
}
这样在'}'之后就会释放内存.
jxufewbt 2006-04-28
  • 打赏
  • 举报
回复
.net会帮你释放的,如果你非要释放,可以用xx.Dispose();
cic_wxf 2006-04-28
  • 打赏
  • 举报
回复
.net的垃圾回收机制问题就是不知道系统什么时候回收,有可能立马就干掉了,比如b1=null,你可以写在你的自定义控件的事件中
fengjunonline 2006-04-28
  • 打赏
  • 举报
回复
我也是在解决一个问题的时候,需要手动释放无用的对象,以节约内存;查了一些资料,发现。。。唉,学学vc吧
cancerser 2006-04-28
  • 打赏
  • 举报
回复
通常是不需要释放的
如果非要释放
在不用的时候 直接写成b1=null,c1=null 就成了
fengjunonline 2006-04-28
  • 打赏
  • 举报
回复
无法手动释放,
这个是.net的垃圾回收机制的弊端,只有当.net察觉对象没有用的时候,才会释放

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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