因为正好解决了手头一个泄漏的问题,正好做个总结。一开始我认为托管代码是不存在泄漏问题的(不使用指针,不操作unsafe的代码) ,我想跟我这样想的人应该不少,呵呵。
传统的内存泄漏主要是因为使用后没有释放造成的 ,而在托管平台下内存的回收是由gc完成,所以托管中出现内存泄漏一般都是因为gc无法分辨对象是否可以被回收造成的,而最常见的就是循环引用,另外委托也是重灾区,4.0中引入的task也成为新的增长点(插播新闻javascript:void(0))。
(插播新闻:
在我的代码中大量使用了task,造成泄漏是因为我使用了TaskCreationOptions.AttachedToParent,它会保持引用关系而不被回收。
作者:KKcat