标签:
理解托管和非托管代码的前提之下,要先了解CLR(大众语言运行库).Net Framework 是由相互独立又相关的两部分构成:CLR 和 类库, CLR是它为我们供给的处事,,类库是它实现的成果.
.NET的大部分特性----垃圾收集,版本控制,线程打点等,都使用了CLR供给的处事
当你为.NET Framework编译源代码的时候,得到的方针代码不是CPU能识另外机器指令,而是一种叫做"微软中间语言(MSIL,或简称为IL的代码)"的新语言.CLR供给了一个实时编译器,
用来把IL代码编译为本机机器代码.这样一来,CLR能够使代码变得可移植,因为.NET应用措施的源代码必需被编译为IL代码,这些IL代码可以运行在任何供给CLR处事的平台上.从CLR的角度来看,
所有的语言都是平等的,只要有一个能生成IL代码的编译器就行,这就确保了各类语言的互操性. managed code-托管代码
由大众语言运行库(CLR)环境(而不是直接由操纵系统)执行的代码。托管代码应用措施可以获得大众语言运行库处事,例如自动垃圾回收、运行库类型查抄和安适撑持等。
这些处事辅佐供给独立于平台和语言的、统一的托管代码应用措施行为。
Unmanaged Code - 非托管代码
在大众语言运行库环境的外部,由操纵系统直接执行的代码。非托管代码必需供给本身的垃圾回收、类型查抄、安适撑持等处事;它与托管代码差别,后者从大众语言运行库中获得这些处事。
标签: