[問題] 解放記憶體問題

看板C_Sharp (C#)作者 (飄落的櫻花)時間18年前 (2007/07/21 18:16), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/1
小弟我寫了一個程式 裡面會產生大量的物件 我希望那些物件到達某個條件是自動消滅釋放記憶體 我看書上 C#好像是丟給GC作,但我記得GC是等有時間的時候他才會做回收的動作 請問C#有沒有類似C++的delete 指定讓一個物件消滅 或回收,我目前看到的是用 XXX=null的方式 讓系統自動回收 但是這樣好像不太保險,因為我可能一個時間需要產生幾千個物件 我需要一個物件任務結束後就把記憶體放出的方法 請問高手有沒有辦法達到我的需求.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.227.97

07/21 18:44, , 1F
都查到GC物件了怎麼沒注意到它有個Collect()…
07/21 18:44, 1F

07/21 18:46, , 2F
另外包在using{}裡的物件執行完會馬上自爆,可以試試
07/21 18:46, 2F

07/22 00:47, , 3F
using是在配合Dispose(要實作IDisposable)的物件的..
07/22 00:47, 3F

07/22 00:48, , 4F
主要是用來free unmanaged資源用..跟GC處理的東西不太一樣
07/22 00:48, 4F

07/22 09:44, , 5F
GC.Collect()可啟動GC回收機制...
07/22 09:44, 5F

07/22 14:58, , 6F
一般建議都是不要強制用 GC.Collect(),因為這樣會影響
07/22 14:58, 6F

07/22 15:03, , 7F
GC自己最佳化的回收機制
07/22 15:03, 7F
文章代碼(AID): #16eTq4AI (C_Sharp)
文章代碼(AID): #16eTq4AI (C_Sharp)