摘要:
为了赶紧把首页刷新顺溜,给大家传几个新闻吧。http://www.oschina.net/news/2415前一阵子关于Mono是否进Debian的问题在自由软件世界引起了相当大的争论,其中教父Richard M. Stallman还特别发表声明,劝阻Debian社区莫将Mono引入,否则将会受微软打压。今天GNOME和Mono的老大:Miguel de Icaza向社区传播了一则来自微软的好消息,即微软决定将“社区承诺协议“应用至C#和CLI。Mono是一个.NET的开源实现,它包含了.NET的主要规格,并拥有自己实现部分(如GTK#)。因为其兼顾了开发效率和运行速度,越来越多的自由软件使用 阅读全文
摘要:
今天早上匆匆写了篇文章,上班时间也找了找资料,也没找到任何有效性的说明,所以还得自己来。还是先上一段测试代码:[代码]比较简单,就是在不同的时候打印几个字符串。我看了看IL,在Foo 的代码里发现了一个特殊的指令,用ILDASM dump出IL:[代码]leave.s IL_0028,这个指令是什么意思呢?查了查msdn:[代码]看了看,也不是很明白,到底是怎么执行呢?我想到了一个Tool,sharpdevelop,一个开源的IDE,记得好像能调式IL,下了一个安装,安下断点,调式发现leave.s实际上执行finally里的代码,然后再到IL_0028;我试着将IL_0028改为IL_002 阅读全文
摘要:
在windows中,每个线程默认的栈大小是1M,托管线程也一样。在32位windows中,用C#在系统中最多可以创建多少个线程呢?答案稍后说。大家都知道try...catch...finally是用来控制异常的流转,一般说来finally是最后一班岗哨,问100个人,99个肯定说一定会执行。是的,一般来讲确实是能执行到的,原因是什么呢?比如在try或catch里return之后为什么还能执行到finally呢?答案是因为return只是把返回值放入相应的地方(一般来讲是寄存器),准备返回;在一个函数返回之前,也就是ret指令调用之前,还有一些代码需要执行,就是清空堆栈(弹出入栈的压入的参数,函 阅读全文