在阅读Xamarin文档的"性能", 我注意到以下章节:
该页面随后继续建议在其中一个对象中使用
同时,Xamarin文档中关于垃圾回收的内容声称:
这是我第一次在C#/.NET/Mono的上下文中听到“不可释放的对象”。下面的图表说明了强引用可能出现的问题:
对象A对对象B有一个强引用,对象B对对象A也有一个强引用。由于存在循环强引用,这些对象被称为不可释放的对象。这种父子关系并不罕见,因此即使应用程序不再使用这些对象,垃圾回收器也无法回收这些对象。
该页面随后继续建议在其中一个对象中使用
WeakReference
,这将删除强循环引用并解决此“问题”。同时,Xamarin文档中关于垃圾回收的内容声称:
标记-清除垃圾回收器不受循环引用的影响吗?Xamarin.Android使用Mono的Simple Generational garbage collector。这是一个标记-清除垃圾回收器[...]