摘要: 今天早上匆匆写了篇文章,上班时间也找了找资料,也没找到任何有效性的说明,所以还得自己来。还是先上一段测试代码:[代码]比较简单,就是在不同的时候打印几个字符串。我看了看IL,在Foo 的代码里发现了一个特殊的指令,用ILDASM dump出IL:[代码]leave.s IL_0028,这个指令是什么意思呢?查了查msdn:[代码]看了看,也不是很明白,到底是怎么执行呢?我想到了一个Tool,sharpdevelop,一个开源的IDE,记得好像能调式IL,下了一个安装,安下断点,调式发现leave.s实际上执行finally里的代码,然后再到IL_0028;我试着将IL_0028改为IL_002 阅读全文
posted @ 2009-07-03 21:15 DiggingDeeply 阅读(2800) 评论(16) 推荐(0) 编辑
摘要: 在windows中,每个线程默认的栈大小是1M,托管线程也一样。在32位windows中,用C#在系统中最多可以创建多少个线程呢?答案稍后说。大家都知道try...catch...finally是用来控制异常的流转,一般说来finally是最后一班岗哨,问100个人,99个肯定说一定会执行。是的,一般来讲确实是能执行到的,原因是什么呢?比如在try或catch里return之后为什么还能执行到finally呢?答案是因为return只是把返回值放入相应的地方(一般来讲是寄存器),准备返回;在一个函数返回之前,也就是ret指令调用之前,还有一些代码需要执行,就是清空堆栈(弹出入栈的压入的参数,函 阅读全文
posted @ 2009-07-03 07:30 DiggingDeeply 阅读(7820) 评论(36) 推荐(0) 编辑
点击右上角即可分享
微信分享提示