我有兩個Windows窗體程序,它是一個圖片數據庫和幻燈片放映。所述Visual Studio 2010中的內存不足問題Visual Basic .NET 4.0
幻燈片連續地更新所顯示的圖片框,而不遞增與畫面的每個新的交換機中使用的
存儲器。但是,我有第二種形式,
有50個圖片框,旨在顯示要添加到數據庫的圖片的縮略圖。由於每個尺寸爲(57,40)的圖片盒都使用小尺寸縮略圖(< 12K)進行更新,因此在32位XP系統上IDE使用的內存略高於1GB,從加載任何縮略圖圖片盒之前的約660MB 。
從.jpg源文件加載大約30個大小(57,40)的pictureboxes到大於3MB,IDE內存使用量增加到大約2.1GB。 (問題不容易遇到.jpg圖像< = 15K和所有50個縮略圖可與<使用1.3 GB內存使用)。
問題顯示自身的平均.jpg文件大小大於3MB的圖像每個高清佳能相機.jpg圖像被加載到30個顯示的縮略圖pictureboxes,我開始點擊左右選擇顯示的圖片和使用內存快速上升,超過2.3GB的內存使用率導致內存不足崩潰。
這是VB2010或.NET 4.0中的錯誤嗎?
將所有圖片以縮略圖形式顯示後,鼠標單擊包含所有縮略圖的面板上的50個圖片框中的任意一個,即可更新圖片上的單個大型圖片箱,以在單個圖片框中顯示圖片, 1024,768)。當單擊任何縮略圖時,單個大圖片框會顯示來自文件的相關圖片,但與此同時,系統內存每增加約240KB的點擊事件。最終,在大約2.3GB的系統內存使用情況下,程序崩潰並出現內存不足錯誤。
我怎樣才能得到程序時
它與只是另一張照片更新到恢復由相同圖片框使用的內存?
部分代碼如下:
' Each Thumbnail has a click event
'PB49 is a PictureBox max size (57,40) used as a thumbnail display, all 50 are on a panel
Private Sub PB49_Click(sender As System.Object, e As System.EventArgs) Handles PB49.Click
'PB(50) is an Integer Array flagging Pictures to add
If PB(49) = 1 Then PB(49) = 0 Else PB(49) = 1
If PB(49) = 1 Then
CheckBox49.Checked = True 'Tiny Checkbox on thumbnail
F$ = ListAddFiles.Items(48) 'ListFileBox of FileNames
PBx1.Image = Image.FromFile(F$) 'Gets filename and path and loads image into PictureBox
PBx1.Visible = True 'Large PictureBox (1024,768)shows Pic F$ located on Form
Else
CheckBox49.Checked = False
PBx1.Image = Nothing
PBx1.Visible = False
End If
End Sub
我使用上安裝XP PRO 32-Bit SP3 4GB RAM
Visual Studio Ultimate SP1 updated .NET 4.0
。
你處置了需要配置的對象? –
你不應該在你的問題中使用這麼多'?'。 – VMAtm
這絕對是你的錯誤,而不是VS. – VMAtm