如何释放COM所占内存?

解决方案 »

  1.   

    要把所有对Com对象的引用都去掉通过 Marshal.ReleaseComObject再把所有对象设置成null再 GC
      

  2.   

    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
      

  3.   

    把所有对Com对象的引用都去掉通过 Marshal.ReleaseComObject再把所有对象设置成null再 GC
    ----------------------
    我就是这样做的, 做重新NEW 一个COM组件出来调用就不正确或异常(前一个COM占用了某些资源没清除), 好像有什么方法可以直接清内存的,不是GC
      

  4.   

    new Com 对象的这个过程要和 GC 调用分开,否则那个new出来的对象好像是无法释放的sub test()
    {
        object c = 创建Com对象    Marshal.ReleaseComObject(c)
    }
    test();
    GC.Coll....();这样应当可以释放吧