VB.net 图片加载内存问题
来源:互联网 发布:linux 安装 jdk 编辑:程序博客网 时间:2024/05/16 17:14
工作中碰到一个内存泄漏问题。记录一下以备后用。
修改前代码:
Private Function BitmapToBitmapSource(source As Bitmap) As BitmapSource
Return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
source.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions())
End Function
修改后
Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As IntPtr) As Boolean
Private Function BitmapToBitmapSource(source As Bitmap) As BitmapSource
Dim sysIntr As System.IntPtr = source.GetHbitmap()
Dim bitmapSource As BitmapSource
bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
sysIntr,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions())
DeleteObject(sysIntr)
Return bitmapSource
End Function
问题的根本原因系统设计的不好,调用GetHbitmap后GDI模块分配的内存托管代码并不负责释放, 需要自己调用
DLL相应C++代码释放。
- VB.net 图片加载内存问题
- VB.net 读写内存问题
- [VB.Net]Excel加载图片某一位置
- 加载图片 内存泄露问题
- [VB.NET]关于保存图片问题
- Android 加载图片时的内存问题
- android 加载超大图片内存溢出问题
- Android 图片加载,内存过大问题
- vb.net 读取内存
- vb.net 合并图片
- 图片剪切 vb.net
- [VB.NET]图片浏览器
- VB.NET合并图片
- VB.NET合并图片
- VB.NET中是否存在内存泄漏问题?
- VB.Net程序设计:小代码段图片被锁住问题
- 关于vb.net读取access数据库中的位图图片问题
- VB.NET自动加载宏
- iOS开发-RunLoop的退出方式
- cvpr 2017 re-id papers
- 11.7 T3.B
- struct和typedef struct
- tensorflow(2)---linux,anaconda2,pycharm中调用tensorflow
- VB.net 图片加载内存问题
- install ssh by Cygwin about windows
- Cas单点登录(7)Cas登录过期时间
- angular的服务小总结
- ios 传入秒得到时分秒算法
- HBase源码系列(一)客户端入口HTable
- cordova自定义插件、发布和使用
- 小乌龟svn的使用
- FTP服务配置