看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《evilned (君千殤)》之銘言: : 目前小弟用 windows form 開發 GUI : Bitmap^ Image = gcnew Bitmap("xxx.bmp"); : 展示圖在 pictureBox 中 : 不過遇到的問題是 : 我展示圖後要將這張圖刪除 : 顯示"因為使用中無法刪除檔案" : 這是代表藉由 gcnew 所託管的沒 delete 掉吧 ? : 那有指令可以將目前所有 gcnew 都 delete 嗎 ~? 用解構子 Image->~Bitmap(); 列表裡沒有,可是可以用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.136.223.15
LPH66:自己呼叫解構子不是正道...特別是當它受 gc 管理時更糟 09/14 01:43
LPH66:這可能會造成資源二次釋放... 09/14 01:43
LPH66:上篇推文二樓的 Dispose 才是正解 09/14 01:43
LPH66:就連在(沒有gc的)C++裡需要自己呼叫解構子的情形也只有一個 09/14 01:45
LPH66:就是該物件是經由 placement new 而產生的這種而已 09/14 01:45