C# winform 内存大 现在做图片移动合成软件,图片很大,而且很多,随着读取图片的增加,程序所占的内存就不断增加,等达到1,6000,0000K 的时候,程序崩溃,报出内存不足,哪位高手有什么解决方法?最好有代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看是滞有内存泄漏情况,该dispose的就dispose,该用using的就用using 用using吧,用完了就自动释放内存 能用using的地方都该成了using,该dispose都dispose了,可是还是内存很大 你可以分开来做 用线程去一批批的处理,然后用了一批释放一下 这样就好多了[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); }但是这个方法 性能要求非常好的话 就另外考虑 X86下,没有开启/3GB的时候,单一进程内存超过1.7G就会报内存错误.这个是架构限制的.另外,现实中的一般应用不会一次使用内存超过1.7G的,超过这个数就要考虑分而治之了. Marshal.ReleaseComObject(obj); obj = null;这个释放的是什么对象!!! 如何从SQL2005数据库中读取最近插入的8条数据? 部署问题 StartIndex 不能小于 0 关于GDI+的一个简单问题! winform中的DataGrid的样式设置问题? 新开 ++ Sql Server 数据库高级编程技术者交流群 ++ ,欢迎大家的加入共同讨论``````````` 求注册表中启动栏位置和键值 asp中如何制作弹出对话框 WIN 2K messenger信使服务的端口为多少? [建议]C#程序员联合起来,积累一套自己的类库 datagridview导出到excel C#初学者的问题!!!
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);
}
但是这个方法 性能要求非常好的话 就另外考虑
这个是架构限制的.另外,现实中的一般应用不会一次使用内存超过1.7G的,超过这个数就要考虑分而治之了.
obj = null;
这个释放的是什么对象!!!