CLR的组成和运转 clr基本 CLR(Common Language Runtime)是一个可由多种编程语言使用的“运行时”.(例如:c#,c++/cli,vb,f#,ironpython,ironruby,il...) CLR的核心功能内存管理.程序集加载.安全性.异常处理.线程同步.泛型.尾调用指令和基本的公共语言基础结构 (CLI) 类型系统等. 托管模块是一个标准的32位microsoft windows可移值执行体pe32文件(64位系统为pe32+),他们需要clr才能执行. 托管…
clr基本 CLR(Common Language Runtime)是一个可由多种编程语言使用的“运行时”.(例如:c#,c++/cli,vb,f#,ironpython,ironruby,il...) CLR的核心功能内存管理.程序集加载.安全性.异常处理.线程同步.泛型.尾调用指令和基本的公共语言基础结构 (CLI) 类型系统等. 托管模块是一个标准的32位microsoft windows可移值执行体pe32文件(64位系统为pe32+),他们需要clr才能执行. 托管的程序集总是利用wi…
MVC之前的那点事儿系列(1):进入CLR MVC之前的那点事儿系列,是笔者在2012年初阅读MVC3源码的时候整理的,主要讲述的是从HTTP请求道进入MVCHandler之前的内容,包括了原创,翻译,转载,整理等各类型文章,当然也参考了博客园多位大牛的文章,对此表示感谢,这次有时间贴出来,希望对大家有用. 主要内容 本文讲解的是:服务器接受Http Request请求之后,是如何进入.Net CLR,从而进一步操作的. 我们大家都知道,IIS必须先接受请求,然后才能有机会进入CLR,但对请求(…
  [C#进阶系列]30 学习总结 [C#进阶系列]29 混合线程同步构造 [C#进阶系列]28 基元线程同步构造 [C#进阶系列]27 I/O限制的异步操作 [C#进阶系列]26 计算限制的异步操作 [C#进阶系列]25 线程基础 [C#进阶系列]24 运行时序列化 [C#进阶系列]23 程序集加载和反射 [C#进阶系列]22 CLR寄宿和AppDomain [C#进阶系列]21 托管堆和垃圾回收 [C#进阶系列]20 异常和状态管理 [C#进阶系列]19 可空值类型 [C#进阶系列]18 特…
.Net 从代码生成到执行,这中间的一些列过程是一个有别于其他的新技术新概念,那么这是一个什么样的过程呢,有什么样的机制呢,清楚了这些基本的东西我们做.Net的东西方可心中有数.那么,CLR的执行模型是一个什么样的过程呢? 将源代码编译成托管模块 --> 将托管模块合并成程序集 --> 加载公共语言运行时 --> 执行程序集的代码 目录 将源代码编译成托管模块 将托管模块合并成程序集 加载公共语言运行时 执行程序集的代码 本地代码生成器:NGen.exe Framwork类库入门 通用类…
线性表(Linear List) 线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点. 线性表的顺序存储结构—顺序表 线性表采用顺序存储的方式存储就称之为顺序表.顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中. 顺序表的特点 1.容量固定 存储顺序表的元素需要一整块内存空间,因而顺序表的容量一旦确定,便不能更改. 2.访…
Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit()). 2.Monitor的常用属性和方法: Enter(Object) 在指定对象上获取排他锁. Exit(Object) 释放指定对象上的排他锁. IsEnte…
摘录自:http://www.cnblogs.com/net168/p/4227144.html 前言 Android中layout_weight这个属性对于经常捣鼓UI的我们来说,肯定不会陌生.但是我们在真正使用这个属性时,经常会出现一些莫名奇妙的布局效果:如果仅仅知其然而不知其所以然,一些意外的布局效果一定让我们颇为头疼.在本文中,将对layout_weight这个属性详细剖析. 正文 从代码讲起: <LinearLayout xmlns:android="http://schemas…
一.Delegate委托可以理解为一个方法签名. 可以将方法作为另外一个方法的参数带入其中进行运算.在C#中我们有三种方式去创建委托,分别如下: public delegate void Print(string str); static void delegatemethod(string str) { Console.WriteLine(str); } public static void Main() { #region 委托 //1.普通委托 var print1 = new Print…
1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit()). 2.Monitor的常用属性和方法: Enter(Object) 在指定对象上获取排他锁. Exit(Object) 释放指定对象上的排他锁. IsEntered 确定当前线程…