我想到了回收對象的方法時就明白了。我正在做這個實驗,看看內存池是如何工作的,我意識到在99%的情況下這是非常不必要的。在GC銷燬嘗試中保留對象
但是,我有一個問題。有沒有辦法強制GC保留對象?換句話說,我可以告訴GC不要銷燬一個對象,而是說在一個列表中創建了一個新的引用,該列表保存了可供使用的對象?這個問題,雖然我沒有測試過這一點,就是如果我增加一些像這樣的列表:
~myObject()
{
((List<myObject>)HttpContext.Current.Items[typeof(T).ToString()]).add(this);//Lets assume this is ASP
}
它將一個指針到該對象到列表中,但如果對象被毀滅,那麼我會得到空指針異常,因爲對象不再存在。但是,也許我可以告訴GC不要收集這個項目,從而保持對象?
我知道這是大多數程序員會去的東西的類型,「爲什麼你會這樣做?」。但另一方面,編程則是嘗試新事物和學習新事物。任何建議,想法和實施?任何幫助將不勝感激!
SuppressFinalize只是取消運行析構函數,而不是集合。 KeepAlive更好,但你必須把它稱爲某個地方,而不是實際的。 –