现在从主程序中调用一个窗口,这个窗口中含有一个别的公司开发的com组件,现在问题来了
这个窗口不开时,内存占用100M,当打开时占用180M,按理说我关上这个窗口内存回到100M,可是并非所想,关上后内存仍然180M,我觉得很奇怪是不是内存还有什么没释放掉,我对每一个控件都用了dispose()
可还是不管用
     现在请大伙帮帮忙解析一下原因,是不是那个com组件岛的乱,要是的话我怎么才能将资源释放呢?
注:我调用这个窗口是通过一个按钮完成的,初始化打开窗口都在这个按钮的click中完成。

解决方案 »

  1.   

    很成熟的com组件,绝对没有问题,就是我怎么给他释放掉
      

  2.   

    你试试看gc.collect试试看,强制垃圾回收
      

  3.   

    Marshal.ReleaseComObject( comobject )
      

  4.   

    Marshal.ReleaseComObject( comobject )
    哪个引用空间的?
      

  5.   

    用了 报这个错什么意思
    未处理的“System.InvalidCastException”?型的?常出?在 mscorlib.dll 中。其他信息: Specified cast is not valid.
      

  6.   

    using System.Runtime.InteropServices
    哪个是com的么??另外释放之前判断一下是否为null
      

  7.   

    恩 可能不是,可能是active的,要是active的怎么释放?
    我是从添加引用里拖进来的,他在添加引用选项里的com中,我就以为是,这是一个绘图的控件,怎么释放,能详细地说一下吗