或者获得垃圾回收的信息?
解决方案 »
- 如何在VS2008中建立visio项目?
- datatable 按总分排名次
- WinForm DataGrideView 添加控件问题
- 关于统计问卷调查个数的问题
- 第二次执行this.Close()为什么会报错?
- 代码生成工具 源码和设计都公开 欢迎高手指教
- 还需要什么?
- ~~~~~请教各位大虾~!~~~``关于treeviwe创建节点和重命名的问题~~~~``
- object参数在out情况下用变量自身的类型初始化怎么做?
- c#中的异步读取文件的问题
- 一个很奇怪的问题:与公网完全物理隔离的内网,却可以连通202.108.33.32地址,请问是何原因?
- 时钟控件可控制线程,为什么线程不可以控制时钟控件!!请教
GC.KeepAlive(object);//可以保证此变量不被垃圾回收
其次.net允许你对某个垃圾代数进行强行回收……GC.Collect(代数)。.NET的垃圾回收不允许你去碰他内置的托管堆。
因为.NET的内存垃圾分为3代,每代的垃圾大小是不同的。比如你分配一个4字节的int型就放到1代,而如果有个超级大的结构体比如100K,那么会放入3代。你创建的结构不知道会被放在哪个托管堆中,所以就算让你碰也很难定位这张表。最后一点就是.NET每次回收都会对旧的变量压缩,并且提升代数。一次回收带来的性能损失是很大的,而且一个变量所处的代数位置也会变化的。楼主真要手工控制回收还是用C++吧……
表面上可以对内存读写,就像直接访问内存一样,
但其实windows接管了内存的操作。
一样的道理