在做一个程序需要循环显示一个非常大的图片(2W)+(*2W+),使用的是image.Source=BitmapSource.Creat(),只要到这句代码,就蹦出来OutofMemoryException。纠结了三天,终于找到了一些解决的办法。出现个人认为是个原因:
1、忽视了程序中需要手动释放的非托管资源;
2、目标平台为32位,本省就限制了程序可使用的内存空间。
3、电脑本身剩余的内存不足(电脑上跑个虚拟机你试试-QAQ-)。
经过一段时间的探索,我发现下面两个方法还是比较有效的:
1、对于与程序中的类做好释放资源的工作 (例如 IDisposable+using)。
2、简单粗暴的将目标平台换成x64。(亲测有效)。