垃圾收集器

520yunyuna 2008-08-02 12:49:53
运行库使用一个线程来执行所有对象的Finalize()方法,请问能够监视或者控制这个线程吗?
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
virusswb 2008-08-03
  • 打赏
  • 举报
回复
你想监控资源释放的过程吗
这个在CLR的底层做了
维护对象的引用,如果没有这个对象的引用了,就回收这个对象
具体不知道可否监控
你可以研究一下内存管理,CLR底层的东西
jeremyyang824 2008-08-02
  • 打赏
  • 举报
回复
抱歉没看清楚,我还以为你要调用呵呵,说到底就是不可监控。
jeremyyang824 2008-08-02
  • 打赏
  • 举报
回复
Finalize()方法只是在对象被垃圾收集器收集之前被调用处理一些事,并且该对象一旦调用了Finalize()方法,就不会在该此垃圾收集中被回收,而是在下一次垃圾收集时才可能被回收。
垃圾收集的执行是不确定的,也就是不可控的,而Finalize()方法也不是由你来调用的,而是由CLR来调用的,那么你又如何通过“另一个线程”来执行它?
bwangel 2008-08-02
  • 打赏
  • 举报
回复
这个,是.net本身的事.我们管不着.
520yunyuna 2008-08-02
  • 打赏
  • 举报
回复
Dispose()方法一般用于释放未托管的资源,Dispose()方法需要显示调用,在程序中很多资源(托管的)不可能一一显示调用啊,还是要使用运行库的垃圾收集器自动清理不需要使用的对象。
我只是看到这个觉得奇怪,所以就问问能不能监视这个线程?
fuadam 2008-08-02
  • 打赏
  • 举报
回复
你为什么要这么做,一般都是用Dispose模式来释放资源的,不推荐用析构函数

110,539

社区成员

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

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

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