【发布时间】:2021-01-14 04:40:09
【问题描述】:
我在 UWP 上运行 Xamarin.Forms 应用程序,该应用程序的页面包含第三方组件。我已经导航到页面并离开,处理了页面和其中的所有组件。
我调用GC.Collect() 并希望页面及其控件不再存在于内存中。但我发现该页面仍在内存中,并且在内存泄漏的底部是具有 Depenent Handle (或我假设的事件处理程序)的第三方组件:
在向第三方报告此情况后,他们会回复以下内容:
我已经与开发团队讨论过这个问题,根据他们的说法,从可视化树中释放控件是由平台执行的,并且在删除它后不会立即执行,因此调用垃圾收集器并检查它是否仍在内存中并不意味着它正在泄漏。该平台可以在其他时间发布它。
现在我认为上述说法不正确......但我在互联网或 MS 文档中找不到任何可以反驳它的内容。
据我所知,如果我处理一个页面及其所有内容并调用垃圾收集器,则该页面及其所有控件应该从内存中消失
这是正确的吗?
【问题讨论】:
标签: c# xamarin xamarin.forms uwp memory-leaks