现在做图片移动合成软件,图片很大,而且很多,随着读取图片的增加,程序所占的内存就不断增加,等达到1,6000,0000K 的时候,程序崩溃,报出内存不足,哪位高手有什么解决方法?最好有代码

解决方案 »

  1.   

    看看是滞有内存泄漏情况,该dispose的就dispose,该用using的就用using
      

  2.   

    用using吧,用完了就自动释放内存
      

  3.   

    能用using的地方都该成了using,该dispose都dispose了,可是还是内存很大
      

  4.   

    你可以分开来做 用线程去一批批的处理,然后用了一批释放一下   这样就好多了[DllImport("kernel32.dll")]
            private static extern bool SetProcessWorkingSetSize(
                IntPtr process,
                int minSize,
                int maxSize
                );        private static void FlushMemory()
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();
                if (Environment.OSVersion.Platform == PlatformID.Win32NT)
                    SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, 20, 20);
            }
    但是这个方法 性能要求非常好的话  就另外考虑
      

  5.   

    X86下,没有开启/3GB的时候,单一进程内存超过1.7G就会报内存错误.
    这个是架构限制的.另外,现实中的一般应用不会一次使用内存超过1.7G的,超过这个数就要考虑分而治之了.
      

  6.   

        Marshal.ReleaseComObject(obj);
                             obj = null;
    这个释放的是什么对象!!!