2011-01-10 104 views
0

我開發了Silverlight棱鏡項目來複制內存泄漏。只是想知道棱鏡模塊的生命週期。棱鏡模塊生命週期

如果在一個模塊內註冊一個視圖,模塊不再使用時視圖會被破壞嗎?

此外,每個模塊是否共享相同的依賴容器(例如統一)還是每個模塊都有獨立的容器?

我有了更深入這裏的問題,

https://stackoverflow.com/questions/4652364/memory-usage-is-suspect-when-loading-prism-modules

我試圖打開和關閉棱鏡組件時,瞭解內存使用的一些差異。

回答

1

1)視圖被破壞的時間點取決於您將視圖註冊到容器的方式。如果您在註冊期間沒有更改對象生命週期,那麼當GC找到對象時沒有任何對象引用該對象,它將被銷燬。如果您在註冊過程中明確指定了生命期管理器,則視圖會根據管理器管理的特定生命週期而被銷燬。例如:當你使用一個Unity容器並且你用一個ContainerControlledLifetimeManager註冊了視圖的時候,視圖在容器被銷燬時被破壞。

2)只要你自己沒有爲每個模塊製作一個子容器,所有模塊共享一個容器。