摘要: CLR(COM服务器) CLR作为一个COM服务器实现在MSCorWks.dll文件中。安装.NET Framework时,表示CLR的COM服务器被注册到Windows的注册表里。 MSCorEE.dll(垫片) MSCorEE.dll的职责是判断创建何种版本的CLR。 非托管应用程序宿主调用MSCorEE.dll(shim)中CorBindToRuntimeEx函数或者另一个相似的函数来创建CLR COM的实例。 一台机器可以安装多个版本的CLR,但在机器中只有一个版本的MSCorEE.dll文件。以上两者之间的关系如下代码所示(c++):MSCorEE.dll(垫片)----... 阅读全文
posted @ 2012-05-03 16:02 higirle 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://www.haogongju.net/art/227209类型、对象、线程堆栈、托管堆栈之间运行时的相互关系(一)首先来看一些基础知道再看看CLR是怎么工作的,看下图: 当CLR开始加载一个Microsoft Windows进程,在这个进程中可能存在多个线程,当一个线程创建时,它会分配到一个1M大小的堆栈,这个堆栈空间用于向方法传递实参,并用于存储方法内部定义的局部变量,上图展示了一个线程的堆栈内存(右侧)。堆栈是从高位内存地址向低位内存地址构建的,在图中,该纯种执行了一 些代码,它的堆栈上已经有一些数据(显示成堆栈顶部的阴影区域),现在假定线程执行的代码要调用M1方法。在一个最. 阅读全文
posted @ 2012-05-03 15:59 higirle 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 浅谈C#堆栈与托管堆的工作方式http://www.haogongju.net/art/1394761C#初学者经常被问的几道辨析题,值类型与引用类型,装箱与拆箱,堆栈,这几个概念组合之间区别,看完此篇应该可以解惑。 俗话说,用思想编程的是文艺程序猿,用经验编程的是普通程序猿,用复制粘贴编程的是2B程序猿,开个玩笑^_^。 相信有过C#面试经历的人,对下面这句话一定不陌生: 值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱。 但仅仅背过这句话是不够的。 C#程序员不必手工管理内存,但要编写高效... 阅读全文
posted @ 2012-05-03 15:09 higirle 阅读(755) 评论(1) 推荐(1) 编辑
摘要: 时间 星期 任务 每日英语泛听 每日英语单词 每日英语精读 CLR 完成情况 体育锻炼 Pending related Task 补充说明 连接 2012-5-3 星期四 1进程和线程的差别(Finish)2. 浅谈C#堆栈与托管堆的工作方式(Finish) 2(小时) 1.CLR Via C# 1.中午篮球活动(Finish)2.晚上散步 1.Reflect2.ildasm.exe http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.htmlhttp://www.doc88.com/p-033416202299.h... 阅读全文
posted @ 2012-05-03 11:28 higirle 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 进程和线程的区别http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系 阅读全文
posted @ 2012-05-03 09:44 higirle 阅读(561) 评论(0) 推荐(0) 编辑