我正在使用此模式垃圾收集不分配給項目一個變量
var businessEntity = new DAL().GetObject(id);
// do something with the business entity.
有沒有人遵循了這一模式?
這是否會導致任何內存管理問題?垃圾收集器的任何併發症?
感謝
我正在使用此模式垃圾收集不分配給項目一個變量
var businessEntity = new DAL().GetObject(id);
// do something with the business entity.
有沒有人遵循了這一模式?
這是否會導致任何內存管理問題?垃圾收集器的任何併發症?
感謝
它工作得很好。它會被垃圾收集得很好。根據實施情況和對象,在行末會標記爲收集,或者一旦businessEntity
超出範圍。
沒有,GC最終將清除DAL
對象,如果沒有其他需要與它做或沒有其他指向它。您可以參考businessEntity
對象,因此只有在引用無效時,GC纔會觸摸它。而其通過businessEntry引用和變量超出範圍
這個對象將現場也沒有,也不會引起與垃圾回收器的任何問題。
對未命名對象的引用位於GC堆棧的根集中,位於VM堆棧中(否則無法調用該方法)。
這是非常典型的代碼後,將收集到的某個時候
這不是真的; 'businessEntry'可能不是對中間對象的引用,它是對任何GetObject返回的引用。 – 2011-01-12 01:49:07
@Ed:那是有問題的對象,這就是我所說的 - 我不是指任何方式(新的Dal())對象。請刪除你的減號。 – Andrey 2011-01-12 02:49:43