如果我创建了一个类,并且实例化,那么这个对象就会占用一定的堆内存。为了不造成内存泄漏,请问:
1.这个堆内存是在这个对象作用域结束被自动释放的吗?
2.这块内存是在应用程序结束被系统收回的吗?
3.这块内存是机器重启才能释放掉的吗?
还有几个问题:
栈区的内存是什么时候释放的,是谁负责释放的?
C#垃圾回收器是在什么时候进行垃圾回收的?
为什么我们有些时候要自己进行释放,比如在建立数据库连接的时候?
这些问题想的我脑袋都快炸了,现在自学到这儿就卡了,希望能帮帮我啊!!!
1.这个堆内存是在这个对象作用域结束被自动释放的吗?
2.这块内存是在应用程序结束被系统收回的吗?
3.这块内存是机器重启才能释放掉的吗?
还有几个问题:
栈区的内存是什么时候释放的,是谁负责释放的?
C#垃圾回收器是在什么时候进行垃圾回收的?
为什么我们有些时候要自己进行释放,比如在建立数据库连接的时候?
这些问题想的我脑袋都快炸了,现在自学到这儿就卡了,希望能帮帮我啊!!!
解决方案 »
- CS1502: 与“int.Parse(string)”最匹配的重载方法具有一些无效参数
- C#中资源文件生成器不能在命令行用吗?(resgen)
- vs2003工程升级到vs2005后所有断点都失效(程序在iis5.1、net2.0下可以正成运行)
- ★★★★★★★冰天雪地裸体跪求正则★★★★★★★
- 事务顺序问题.... 高手指点一下..谢谢~~ 为什么有时候只执行 insert into 语句
- 刚开始学c#做一些什么实例比较容易上手
- 关于Mdi 子窗体的一个问题~~
- 我在C#中调用windown API播放声音,为什么声音和图像不同步?
- 求助excel的行复制和粘贴??
- soap相关的问题
- VB2010安装后显示无效的许可证数据。需要重新安装。怎么解决
- 为什么我在win7下开发的C# winform程序,在xp下无法运行?
一般 只要以后代码不再用到该对象 则 执行完最后一行使用该对象的代码后 回自动释放掉
有些对象要在多长时间没有被使用后释放掉
主要就是这两种这是虚拟机控制的托管代码 跟 重启电脑没有多少关系 当然电脑重启后 啥都释放了
一般就是你说的第一种情况
有些特殊的对象 比如引用的 第三方DLL 还是要写析构函数的
自己去看
《你必须知道的.net》
《Clr via C#》