这个问题困搅了我很久,我新打开一个窗口,可以在进程管理器中看到,内存占用增加了2M;但是Unload以后,内存无法恢复,我已经使用了Set Form=nothing语句了,但是还没有用.    据我知道,直到用到某一个类/模块,VB才把他调入内存;假如我新开的窗口调用了一个很大的类/模块,在该窗体Unload以后,该类/模块怎样才从内存中消失呢?    疑惑不解,请高手帮忙!

解决方案 »

  1.   

    一般在你调用到比较大的类的话可以在窗体的query_unload事件中释放他比如说
    if not clsobj is nothing then
      set clsobj=nothing
    end if当然,楼上的说法是正确的!不过及时释放没用的内存是个好习惯呵呵
      

  2.   

    3楼的可能不明白我的意思,我就是使用了set clsobj=nothing,但是内存还是没有释放,在进程管理器看到内存没有变化,有时还增加一点.
      

  3.   

    我认为,内存不是自动释放的,windows会优先使用没有被使用过的内存,直到用尽之后再考虑已经无用的内存,甚至根本不考虑这些内存,而是直接使用虚拟内存。举个例子,开机后运行一定的程序,正常的使用一段时间之后再打开相同的程序,这时你看到的内存使用率肯定比之前看到的高,除非你使用了内存整理程序。