c#中 用 new 分配内存后,怎么把他释放掉?

HanZhu1 2003-12-26 07:14:45

多谢
...全文
5979 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
psn 2003-12-28
  • 打赏
  • 举报
回复 1
.net回自己释放,不过,如果如果写了析构函数,运行时会把这些对象从GC队列放入另一个队列,等待调用构析函数。显式调用Dispose可以避免对象经历第二个步骤即使他有构析函数。还可以用GC.SuppressFinalize函数,他也能立刻清理对象而不走第二步
loverP 2003-12-28
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2482/2482323.xml?temp=.8409235
ArLi2003 2003-12-27
  • 打赏
  • 举报
回复
using (Form2 fm = new Form2()) {
fm.Show();
}
njx 2003-12-27
  • 打赏
  • 举报
回复
什么也不用做,GC会在适当的时候清理的
eyoexply 2003-12-27
  • 打赏
  • 举报
回复
它自己搞定
cwwwj 2003-12-27
  • 打赏
  • 举报
回复
你不用管它,自动收回了 :)
senzz 2003-12-27
  • 打赏
  • 举报
回复
系统会自己清理的

或者

object.dispose();


hlj321 2003-12-27
  • 打赏
  • 举报
回复
up
yunhi 2003-12-27
  • 打赏
  • 举报
回复
托管堆的内存由GC自动回收,在编写代码的时候也无需显式调用GC。非托管资源的内存释放可以声明一个析构器。

using System;

public sealed class OSHandle
{

// 保存一个非托管资源的win32句柄
private IntPtr handle;

// 构造器初始化句柄
public OSHandle(IntPtr handle)
{
this.handle = handle;
}

//当垃圾收集执行的时候,下面的析构器(Finalize)方法
//将被调用,它将关闭非托管资源句柄。
~OSHandle()
{
CloseHandle(handle);
}

// 返回所有封装的handle句柄
public IntPtr ToHandle()
{
return handle;
}

// 隐式转换操作符也用于返回所封装的Handle句柄
public static implicit operator IntPtr(OSHandle osHandle)
{
return osHandle.ToHandle();
}

// 释放非托管资源
[System.Runtime.InteropServices.DllImport("Kernel32")]
private extern static Boolean CloseHandle(IntPtr handle);
}
loverP 2003-12-27
  • 打赏
  • 举报
回复 1
没必要,什么也不用做,即使你Dispose()它或是GC.Collecct(),垃圾处理机制也只在它认为合适的时候才回收。唯一要注意的是好多之后不知涉及内存,还涉及到许多其它资源的占用,这时候就必须手动调用Dispose()释放,否则就会出现“内存还没用完就发生资源不足”的异常。
yanransoft 2003-12-27
  • 打赏
  • 举报
回复
object.dispose();
dragon515 2003-12-27
  • 打赏
  • 举报
回复
object.dispose()
先锋99999 2003-12-27
  • 打赏
  • 举报
回复
GC.Collect();
huangsuipeng 2003-12-26
  • 打赏
  • 举报
回复
这种情况依靠GC就够了
fengxue727 2003-12-26
  • 打赏
  • 举报
回复
在c#里有com+的概念吗。还没听说过。
com+是最终的二进制码,而c#编译的结果是中间码。
你吧c#编译成.dll不就行拉吗?这个应该很简单的。例如建一个类库。
fengxue727 2003-12-26
  • 打赏
  • 举报
回复
大部分能自动清理有的不行。
的显式清理。不然会出问题的。
IceboundRock 2003-12-26
  • 打赏
  • 举报
回复
把它设置为null,然后调用GC.Collect();
sharpblade 2003-12-26
  • 打赏
  • 举报
回复
自動清理
luyiping 2003-12-26
  • 打赏
  • 举报
回复
object.dispose();
但你不用担心,.net 的垃圾收集器会自己清理的

110,567

社区成员

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

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

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