基于.NETBitmapImage内存释放问题的解决方法详解
2023-06-13 09:14:53 时间
网上查到的代码,多数的写法使用MemoryStream来实现:
newThread(newThreadStart(()=>{
varbitmap=newBitmapImage();
bitmap.BeginInit();
using(varstream=newMemoryStream(File.ReadAllBytes(...))){
bitmap.StreamSource=stream;
bitmap.CacheOption=BitmapCacheOption.OnLoad;
bitmap.EndInit();
bitmap.Freeze();
}
this.Dispatcher.Invoke((Action)delegate{
Image1.Source=bitmap;
});
})).Start();
今天问题来了,
其实最简单就是直接弃用MemoryStream转投FileStream,如下:
using(varstream=newFileStream(path,FileMode.Open)){
image.BeginInit();
image.StreamSource=stream;
image.DecodePixelWidth=100;
image.CacheOption=BitmapCacheOption.OnLoad;
image.EndInit();
image.Freeze();
}
相关文章
- 解决win10开机内存占用大,内存持续升高的方法[通俗易懂]
- shell脚本案例-监控内存使用率
- OpenCV调用海康威视等摄像头(处理rtsp视频流)方法以及,出现内存溢出(error while decoding)或者高延迟问题解决[通俗易懂]
- 内存因0xc000009c的错误_0xc0000005错误怎么解决
- 什么是内存泄漏?防止内存泄露的方法?
- 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法
- Linux 中查看内存使用情况的方法(linux查看内存情况)
- javascript检测内存泄漏的方法详解编程语言
- Linux内存垃圾回收:识别与处理(linux垃圾回收)
- Linux下防止内存泄露的方法(内存泄露linux)
- 基于Redis的数据存储优势(redis内存数据库)
- Linux查看物理内存的方法(linux获取物理内存)
- 使用Linux检测内存泄露的方法(linux检查内存泄露)
- Linux Alloca:快速内存管理的新希望(linuxalloca)
- Linux下查看内存配置的正确方法(linux 内存配置查看)
- SQL Server扩内存:提升系统性能的新方法(sqlserver扩内存)
- 如何对MySQL进行大内存优化(mysql大内存优化)
- Linux内存状态:洞悉你的系统情况(linux 内存状态)
- Oracle优化内存进程运行效率(oracle内存进程)
- 内存溢出解决Redis内存溢出的有效方法(怎么解决redis)
- w3wp.exe占用CPU和内存问题过高的解决方法
- IIS6w3wp.exe进程占用cpu和内存过多的解决方法
- 2款Python内存检测工具介绍和使用方法
- CI框架在CLI下执行占用内存过大问题的解决方法
- Android编程中避免内存泄露的方法总结