请问各位大侠,DataSet在内存中的保留期是多久?

解决方案 »

  1.   

    DataSet对象声明为某个类的成员生命周期就等于类   
    如果在某个方法内声明,生命周期在方法执行完毕结束
    可缓存
      

  2.   

    看你在那里定义DataSet,如果是类的成员变量,那么这个类的生命周期结束后,这个DataSet就会在某个时刻(GC执行时)被回收。如果在某个方法内定义,那么这个方法结束后,某个时候GC就会回收它。
      

  3.   

    一般情况下垃圾回收器会很久才执行一次回收,也会在分配给某个进程或者线程的内存超出后自动执行。其他时候都不会随便执行垃圾回收的,因为这样做是很消耗系统资源的。对于DataSet这种大对象也会依照大对象的处理方法进行释放,不过请你放心,微软在处理DataSet这种复杂的大对象时会有很多优化方法,他的内存也完全依照框架来进行释放。垃圾回收这种对象的时候,还要看这个对象是否有正在被使用,例如你声明了某个静态变量,他引用了某个DataSet那么他怎么也不会被释放的。只有没有任何类或者正在使用的页面引用某个DataSet时,在下次垃圾回收的时候才会回收他。
      

  4.   

    DataSet和别的对象没有区别。
    DataSet里面的数据则取决于是否是延迟加载的。垃圾回收是在对象超过生命周期之后进行的。如果是程序生命周期,那么只要程序运行着,对象就永远存在。