数据表Dt第三方控件A 
微软控件B
我的控件C
——统统绑定到Dt
执行Dt.Dispose这时候发现只有A的数据源消失了,而B、C的竟然还在晕~~Why?想不明白了,Dt消失的只是表的指针??但是不对阿,如果消亡的是指针,第三方控件如何截获指针的消亡呢?没分了,探讨一下,实际上意义不大

解决方案 »

  1.   

    执行Dt.Dispose后,B、C的数据源可以正确使用否?
      

  2.   

    BC可以正常使用的,.Net就是这样子的
    ——就不是不知道第三方控件靠什么原理截获的消亡信息
      

  3.   

    object a = new XXObject();//举个例子
    object b = a;
    object c = a;
    object d = a;
    b = null;
    //此时a还保留着,如果调用c和d,一样可以获取a
      

  4.   

    执行Dt.Dispose并没有吧Dt消失吧,只是在GC标记了一下而已!而且,它还在使用着呢,这时不会被回收。
    从现象来看很可能第三方控件A多做了一些处理,比如挂了Dispose事件,刷了DataSource或者做了标记,建议看看是不是产品feature或者design,否则就算bug了。
      

  5.   

    想到了《永不消失的电波》了我在想dispose的时候是不是会触发什么动作的,然后第三方控件就是捕获了这个动作,然后清空了里面的数据啊?
    我就说说猜想