none
silverlight4 中通过反射生成的对象不能完全销毁 RRS feed

  • 问题

  • 我在silverlight4中,通过反射生成了Page的对象,加载在主页面中(MainPage)。

    没有加载Page页面之前:IE内存61383K左右

    动态加载Page页之后:IE内存61880K左右

    Page页面中做操作之后【大数据量查询】:IE内存274000k左右。

    销毁Page页之后。IE内存不变。IE内存68000K左右。

    Page页面实现IDisposable接口。对象用过反射生成,Assembly 中CreateInstance方法。

    问题:

    动态生成的Page对象好像没有完全卸载掉。请教高手这是什么原因。是不是我的销毁方式有问题?

    2012年2月8日 12:55

答案

  • 是不是存在循环引用?
    例如: a 引用 b,b引用a?这个收集时间较长。

    而且如果你调用GC回收垃圾,GC并不一定是进行回收,它可能是申请更大的内存去了。这个和当前你的操作系统的状况有关。

    所以你最好是自己手动回收,谁创建谁回收。

    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!

    2012年2月9日 2:13
    版主