C#类对象释放问题,如何手动释放

luckczj 2008-03-13 09:58:14
public class czj
{
public static int count;
public czj()
{
count++;
}
~czj()
{
count--;
}
}
在C#采用了自动内存回收后,虽然减轻了一些负担,但是也导致了一些不便,比如我想统计当前已经创建了多少个对象(希望中途释放一些),就无法实现了。
因为所有对象都生存到最后一刻才释放,无法中途释放。

大家帮我下,有没有类似C++的delete 对象方式效果的
...全文
7394 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahuzirrr 2010-10-05
  • 打赏
  • 举报
回复
直接一般对象 xxx=null; 应该就能释放了
  • 举报
回复
@dahuzirrr 这个还得等GC
小范f-li.cn 2010-03-05
  • 打赏
  • 举报
回复
dd
houdianshun 2009-08-08
  • 打赏
  • 举报
回复
感觉不错,回去试试去!!
b哈利路亚d 2008-03-13
  • 打赏
  • 举报
回复
把吧对象引用 = null
然后 GC.Collect() 告诉计算机可以进行垃圾处理了。
当然要不要响应有垃圾处理机制决定。
方便起见最好把上述代码放到IDispose()里面
luckczj 2008-03-13
  • 打赏
  • 举报
回复
尝试了将对象设置为null,这样回收机制就可以了。
困惑中,大家还有没有方法,有案例最好了。
private void Form1_Load(object sender, EventArgs e)
{

czj cc = new czj();
Thread.Sleep(10);
this.label1.Text = czj.count.ToString();
cc = null;
GC.Collect();
}
luckczj 2008-03-13
  • 打赏
  • 举报
回复
发帖时又有几位朋友回复,都非常感谢!

我在Form_load最后行加上GC.Collect();感觉还是没有用。
luckczj 2008-03-13
  • 打赏
  • 举报
回复
先谢谢kingbird_wang的回复
我看了很多关于dispose和Finalize的应用总是针对类中非托管对象的释放,不知道是否是我的理解错误。
我的想法是释放掉类定义出的对象,即便这个类对象中没有非托管资源。
比如我在窗体的某个事件中调用了,现在需要我关闭窗体,才会触发析构,也就是说这个时候系统才自动回收垃圾了,我想提前这个时间。
如下面两个事件,按照变量生存周期,cc是在load函数中的临时变量而已,该函数被事件调用后,cc对象就应该释放了,但是我在按钮的事件里再区检查时,对象仍然没有释放(我检查计数器)。
private void Form1_Load(object sender, EventArgs e)
{

czj cc = new czj();
Thread.Sleep(10);
this.label1.Text = czj.count.ToString();
}

private void button1_Click(object sender, EventArgs e)
{
this.label1.Text = czj.count.ToString();
}
ylhyh 2008-03-13
  • 打赏
  • 举报
回复
没有实现Dispost()的也可以通过GC.Collect()释放吧
沅江汐水 2008-03-13
  • 打赏
  • 举报
回复
Dispost()方法 。。 释放

手动的话需要显示的调用
owenliangbin 2008-03-13
  • 打赏
  • 举报
回复
dispose
kingbird_Wang 2008-03-13
  • 打赏
  • 举报
回复
C#里提供了IDispose接口,实现了这个接口的对象可以主动调用Dispose()方法来释放。
建议参考
http://msdn2.microsoft.com/zh-cn/library/system.idisposable(VS.80).aspx

http://msdn2.microsoft.com/zh-cn/library/fs2xkftw(VS.80).aspx

111,092

社区成员

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

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

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