社区
C#
帖子详情
C# winform 内存大
aikeli1234567
2010-04-01 04:34:29
现在做图片移动合成软件,图片很大,而且很多,随着读取图片的增加,程序所占的内存就不断增加,等达到1,6000,0000K 的时候,程序崩溃,报出内存不足,哪位高手有什么解决方法?最好有代码
...全文
227
21
打赏
收藏
C# winform 内存大
现在做图片移动合成软件,图片很大,而且很多,随着读取图片的增加,程序所占的内存就不断增加,等达到1,6000,0000K 的时候,程序崩溃,报出内存不足,哪位高手有什么解决方法?最好有代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zkwangbb
2010-04-02
打赏
举报
回复
Marshal.ReleaseComObject(obj);
obj = null;
这个释放的是什么对象!!!
andyleec
2010-04-02
打赏
举报
回复
[Quote=引用 12 楼 foxdave 的回复:]
图片都写内存里了吧? 能不能分批地整 不一下全搞了
[/Quote]
同意这个up
鸭梨山大帝
2010-04-02
打赏
举报
回复
X86下,没有开启/3GB的时候,单一进程内存超过1.7G就会报内存错误.
这个是架构限制的.
另外,现实中的一般应用不会一次使用内存超过1.7G的,超过这个数就要考虑分而治之了.
lovelan1748
2010-04-02
打赏
举报
回复
[Quote=引用 1 楼 xyq1986 的回复:]
看看是滞有内存泄漏情况,该dispose的就dispose,该用using的就用using
[/Quote]
UP
zhushoudong
2010-04-02
打赏
举报
回复
c# 一样可以的
铛铛
2010-04-02
打赏
举报
回复
很不幸,你用了c#,没办法的
zhushoudong
2010-04-02
打赏
举报
回复
你可以分开来做 用线程去一批批的处理,然后用了一批释放一下 这样就好多了
[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);
}
但是这个方法 性能要求非常好的话 就另外考虑
王子样
2010-04-02
打赏
举报
回复
也要加载多大的图片啊?再怎么大也不至于弄成这样吧,代码是如何实现的?有优化过没?
Justin-Liu
2010-04-02
打赏
举报
回复
图片都写内存里了吧? 能不能分批地整 不一下全搞了
pansy5
2010-04-02
打赏
举报
回复
帮忙顶
KnowKjava
2010-04-02
打赏
举报
回复
[Quote=引用 5 楼 ahsun1987 的回复:]
用using吧,用完了就自动释放内存
[/Quote]顶
gsq_0912
2010-04-02
打赏
举报
回复
很想知道用代碼該怎麼寫?
aikeli1234567
2010-04-02
打赏
举报
回复
能用using的地方都该成了using,该dispose都dispose了,可是还是内存很大
myhotmail123
2010-04-02
打赏
举报
回复
用Delpi吧,,
Taiyangchen
2010-04-02
打赏
举报
回复
用using吧,用完了就自动释放内存
ginni215
2010-04-01
打赏
举报
回复
一个大的处理完成之后,就手动设置一下内存的最大值就可以了,效果类似于将程序最小化到工具栏,就是把内存占用量先转移到虚拟内存中,用的时候再取出来~
llf94632525
2010-04-01
打赏
举报
回复
应该是内存泄露,对象用完释放。
xyq1986
2010-04-01
打赏
举报
回复
看看是滞有内存泄漏情况,该dispose的就dispose,该用using的就用using
C#
解决
Winform
应用程序占用
内存
越来越大的方法
C#
解决
Winform
应用程序占用
内存
越来越大的方法 欢迎使用Markdown编辑器 优化前后对比 应用方法 定时器或线程调用都可 代码展示。 #region
内存
回收 [System.Runtime.InteropServices.DllImport(“kernel32.dll”, EntryPoint = “SetProcessWorkingSetSize”)] public static extern int SetProcessWorkingSetSize(IntPtr process,
C#
解决
Winform
应用程序占用
内存
越来越大的方法(亲测ok)
前言: .NET 一直所为人诟病的就是“胃口太大”,狂吃
内存
,虽然微软声称 GC 的功能和智能化都很高,但是
内存
的回收问题,一直存在困扰,尤其是
winform
程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的。 以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的
内存
量比较大,你把程序最小化,...
C#
Winform
应用程序占用
内存
较大解决方法整理(转)
C#
Winform
应用程序占用
内存
较大解决方法整理(转)
C#
Winform
应用程序占用
内存
较大解决方法整理(转)-- SetProcessWorkingSetSize
一、
C#
Winform
应用程序占用
内存
较大解决方法整理(转) 原文: http://www.jb51.net/article/56682.htm 背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了。但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃
内存
,虽然微软声称 GC 的功能和智能化都很高,但是
内存
的回收问题,一直存在困扰,尤其是
winform
程序,其主要原因
C#
编程时,
WinForm
中PictureBox.Image加载大尺寸图片,显示实时照片会造成
内存
溢出,解决方法
pictureBox1.Image = (Bitmap)pictureBox1.Clone(); GC.Collect();
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章