作者fillmore (.......................)
看板C_Sharp
标题Re: [问题] 请问个c#观念问题
时间Fri Nov 11 20:05:53 2005
※ 引述《tomex (tomex_ou)》之铭言:
: ※ 引述《fillmore (.......................)》之铭言:
: : class Form1
: : {
: : Form2 F2;
: : public Form1()
: : {
: : F2 = new Form2(this);
: : }
: : }
: : class Form2
: : {
: : Form1 F1;
: : public Form2(Form1 ref)
: : {
: : F1 = ref;
: : }
: : }
: : 请问Form1物件的F2 = null的时候
: : 1.确实在记忆体中有清乾净吗?? (因为F2物件里面有Form1的参考,所以不知道会怎样)
: : 2.如果没有清乾净那该如何清理呢?
: : 3.或是两个不同的Form互有对方的参考又该如何清理?
: 1.
: 假如你已new Form1,它则产生Form1的记忆体(以下简称MM)使用,它放Form2,
: 而Form2本身只是具有一个Form1的指向,并没有实际的MM配置。
: 当F2=null时,GC会注记Form2物件的ref count - 1,等ref-count为0时
: 可能立即或等一会儿再回收MM资料
: 2.要确保会立即清乾净,就是实作Dispose()这介面方法
: 用F2.Dispose() 来代替F2=null。
: 3.不管怎样的参考,你只要回归Form1/Form2各自的Ref-Count现值
请问.NET有工具可以随时观看
REF-COUNT值吗?
: 就可知道它们的回收状况。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.71.47