C#.Net析构知识引申(CLR级的剖析)
原文中文,约3500字,阅读约需9分钟。发表于: 。一.前言析构函数是一个特殊的函数,它有自己的线程,有自己的实现方式。在CLR里面相当于一个小型的自我运转系统(有的书本把这个称之为终结器)。来看下一些概念以及一些运行模型。二.概述析构函数有一堆的概念1.析构对象列表(也就是存放了包含析构函数的对象),它是最原始的。也就是当进行对象实例化分配的时候,会判断此对象是否包含了析构函数,如果包含了,则把此对象添加到析构对象列表。flags & G...
本文介绍了析构函数的概念和运行模型,包括四个队列:析构对象列表、析构空闲列表、关键析构函数列表堆和析构列表堆。在GC垃圾回收时,会对这些队列进行操作,将不存活的对象移动到不同的队列中。析构线程通过Windows事件内核对象进行操控,CLR会在某个时间段通知其进行工作。