Re: [問題] .Net gcnew 問題

看板C_and_CPP作者 (沒有暱稱)時間15年前 (2010/09/13 23:44), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《evilned (君千殤)》之銘言: : 目前小弟用 windows form 開發 GUI : Bitmap^ Image = gcnew Bitmap("xxx.bmp"); : 展示圖在 pictureBox 中 : 不過遇到的問題是 : 我展示圖後要將這張圖刪除 : 顯示"因為使用中無法刪除檔案" : 這是代表藉由 gcnew 所託管的沒 delete 掉吧 ? : 那有指令可以將目前所有 gcnew 都 delete 嗎 ~? 用解構子 Image->~Bitmap(); 列表裡沒有,可是可以用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.136.223.15

09/14 01:43, , 1F
自己呼叫解構子不是正道...特別是當它受 gc 管理時更糟
09/14 01:43, 1F

09/14 01:43, , 2F
這可能會造成資源二次釋放...
09/14 01:43, 2F

09/14 01:43, , 3F
上篇推文二樓的 Dispose 才是正解
09/14 01:43, 3F

09/14 01:45, , 4F
就連在(沒有gc的)C++裡需要自己呼叫解構子的情形也只有一個
09/14 01:45, 4F

09/14 01:45, , 5F
就是該物件是經由 placement new 而產生的這種而已
09/14 01:45, 5F
文章代碼(AID): #1CZaRttd (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1CZaRttd (C_and_CPP)