2016-04-18 18 views

回答

4

PictureBox無法知道您是否要放置圖像 - 您可能會在應用程序的其他地方使用它。所以它沒有明確的Dispose它。如果PictureBox持有對它的最後一個引用,它就有資格進行垃圾回收,並且Dispose將作爲最終確認的一部分進行調用,但是如果發生這種情況取決於垃圾回收器。與此同時,尚未配置的Bitmap正在消耗非託管資源,並且很可能會打開一個流,以防止對源文件進行修改,因此,「隨時」對事情進行清理是不好的做法。

如果你知道你在修改的東西PictureBox.Image點的時間與Bitmap完成後,添加一個額外的幾行權有處置舊的,就大功告成了:

Image tmp = myPictureBox.Image; 
myPictureBox.Image = newImage; 
if (tmp != null) 
{ 
    tmp.Dispose(); 
} 
+0

這是我懷疑的,謝謝。 – KDecker

相關問題