WINCE多次載入圖片,內存不能釋放

sdhjk 2010-03-22 11:44:30
請大家幫忙看下,我是在wince5.0上執行程序,多次載入不同的圖片,程序不斷占有內存,使系統資源耗盡,代碼如下:
'form1 按扭click去到form7,按鈕代碼
map = New Bitmap(“\Storage Card\photo\1.jpg”)
image1 = Image.FromHbitmap(map.GetHbitmap())'執行這個代碼內存就會增加
form7.PictureBox1.Image = image1

'當form7返回form1時,執行一下代碼

form7.PictureBox1.Dispose()
form7.PictureBox1 = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()

請問以上代碼是否有問題,為何不能釋放內存
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingyuebuyu 2010-03-22
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/k061we7x(VS.80).aspx

FromHbitmap 方法生成 GDI 位图的一个副本,因此创建新的 Image 后立即使用 GDIDeleteObject 方法,您可以释放传入的 GDI 位图。

使用下面的实例
http://msdn.microsoft.com/zh-cn/library/1dz311e4.aspx


用1楼的代码方便
CloneCenter 2010-03-22
  • 打赏
  • 举报
回复
需要那么复杂吗?

map = New Bitmap(“\Storage Card\photo\1.jpg”)
image1 = Image.FromHbitmap(map.GetHbitmap())'執行這個代碼內存就會增加
form7.PictureBox1.Image = image1
改成这个试试:
If Not form7.PictureBox1.Image Is Nothing Then form7.PictureBox1.Image.Dispose
form7.PictureBox1.Image = New BitMap("\Storage Card\photo\1.jpg")

16,557

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧