为什么使用ObservableCollection.Clear()但GC不起作用

时间:2011-10-24 09:18:58

标签: silverlight windows-phone-7 garbage-collection observablecollection

当我使用方法Clear()时,我有一个ObservableCollection绑定到Pivot中的列表框。似乎GC没有回收。因此,当我保持清除ObservableCollection时,内存保持不变。有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

WP7上的垃圾收集与其他.Net垃圾收集器的行为不同。它被编程为仅在内存使用超过特定级别时运行。

另外,请记住,Mango中的垃圾收集器已经改变:在最初的WP7中,垃圾收集器是非代数的,在芒果中它现在是世代的。

如果你急于清理内存,那么GC.Collect()(Windows Phone 7) 或GC.Collect(3)(仅限Windows Phone 7 Mango)

将是你所追求的。执行此操作将暂停应用程序,因此在用户接受暂停的情况下执行此操作是有意义的 - 可能只是在您更改屏幕或保存数据之后,这是执行此操作的好时机。