博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页

2011年11月3日

摘要: 【读书笔记】.NET本质论第四章-Programming with Type(Part Two)2009-08-31 09:17 by 横刀天笑, 2334 visits,收藏,编辑欢迎阅读本系列其他文章:【读书笔记】.NET本质论第一章 The CLR as a Better COM【读书笔记】.NET本质论第二章-Components(Part One)【读书笔记】.NET本质论第二章-Components(Part Two,public key)【读书笔记】.NET本质论第二章-Components(Part Three,CLR Loader)【读书笔记】.NET本质论第二章-Compo 阅读全文

posted @ 2011-11-03 16:33 qianyz 阅读(200) 评论(0) 推荐(0) 编辑

2011年10月26日

摘要: 揭示同步块索引(中):如何获得对象的HashCode题外话:为了尝鲜,也兴冲冲的安装了Win7,不过兴奋之余却郁闷不已,由于是用Live Writer写博客,写了好几篇草稿,都完成了80%左右,没有备份全部没了。欲哭无泪,只好重写了。Visual Studio + SOS 小实验咋一看标题,觉得有些奇怪,同步块索引和HashCode有啥关系呢。从名字上来看离着十万八千里。在不知道细节之前,我也是这样想的,知道细节之后,才发现这两兄弟如此亲密。我们还是先来用Visual Studio + SOS,看一个东西,下面是作为小白兔的示例代码: 1: using System; 2: publi... 阅读全文

posted @ 2011-10-26 11:10 qianyz 阅读(256) 评论(0) 推荐(0) 编辑

摘要: 揭示同步块索引(上):从lock开始大家都知道引用类型对象除实例字段的开销外,还有两个字段的开销:类型指针和同步块索引(SyncBlockIndex)。同步块索引这个东西比起它的兄弟类型指针更少受人关注,显得有点冷落,其实此兄功力非凡,在CLR里可谓叱咤风云,很多功能都要借助它来实现。 接下来我会用三篇来介绍同步块索引在.NET中的所作所为。 既然本章副标题是从lock开始,那我就举几个lock的示例:代码1 1: public class Singleton 2: { 3: private static object lockHelper = new object(); ... 阅读全文

posted @ 2011-10-26 11:09 qianyz 阅读(469) 评论(2) 推荐(1) 编辑

摘要: 揭示同步块索引(下):总结同步块的三个作用1 GC启动时候用来进行垃圾回收算法的时候会用到同步块的一个位,作为标志2 hashcode3 lock前面,我用两篇文章详细的讨论了同步块索引在lock和GetHashCode所起的作用。不过两篇文章是分开来讨论的。那可能有人会问,如果我有一个object,它既作为lock的lockHelper对象,也要调用它的GetHashCode方法该怎么办,难道这个同步块索引还可以承担这两个任务么。同步块索引是可以承担这两个任务,但是里面却隐藏着更大的秘密,我们先来看看与同步块索引相关的结构: 大致就是这样的一个结构,一个对象的ObjectHeader中的Sy 阅读全文

posted @ 2011-10-26 11:08 qianyz 阅读(201) 评论(0) 推荐(0) 编辑

2011年9月19日

摘要: delegate void CallBack(ref int result); class Program { public static void Main(string[] args) { int restut = -1; CallBack cb = new CallBack(Call); cb.BeginInvoke(ref restut, null, null);//异步 while (restut != 0) { Thread.Sleep(200); } Console.Read(); } public static void Call(ref int res) { Thread.. 阅读全文

posted @ 2011-09-19 14:02 qianyz 阅读(217) 评论(1) 推荐(0) 编辑

2011年5月9日

摘要: Threading in C#Joseph AlbahariPart 1 Part 2 Part 3 Part 4 Part 5Getting StartedBasic SynchronizationUsing ThreadsAdvanced ThreadingParallel ProgrammingLast updated: 2011-4-27Translations: Chinese | Czech | Persian | RussianDownload PDFPart 1: Getting StartedIntroduction and ConceptsC# supports paral 阅读全文

posted @ 2011-05-09 10:34 qianyz 阅读(429) 评论(0) 推荐(0) 编辑

2011年1月21日

摘要: 一、什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存 阅读全文

posted @ 2011-01-21 16:05 qianyz 阅读(271) 评论(1) 推荐(1) 编辑

2010年10月30日

摘要: CLR初始化的时候记着要计算syn同步块,和方法表指针,同时对其他字段重新排序,使之成为内存对齐的某种方式,const readonly区别:const 在编译时的值就是已知的,以后都不能改变,所有用到这个数据的地方都是内联使用的readonly 它的值是动态初始化的,一旦初始化之后就不能再改变,就是说在调用构造函数之后这个值要确定下来, 并且以后都不能改变,注意const是在编译时就确定下来的,... 阅读全文

posted @ 2010-10-30 17:07 qianyz 阅读(141) 评论(0) 推荐(0) 编辑

2010年10月13日

摘要: datarow.rowstate:当新建一行的时候,状态为Detached,不属于任何表,把它添加到表中后,状态为Added,这时候你修改这条数据,他的状态还是Added, 把它添加到表中后,状态为Added0 如果 这时候你修改这条数据,他的状态还是Added,1 如果 如果再去调用delete(),他的状态又变会Detached,而不是delete状态。2 如果 这个时候调用 acceptch... 阅读全文

posted @ 2010-10-13 20:03 qianyz 阅读(480) 评论(0) 推荐(0) 编辑

摘要: SqlDataAdapter主要有5块内容,其中有四项是利用sqlcommand来完成的,还有一个是映射表用的。SqlDataAdapter对象内用到的对象还是sqlconnection和sqlcommand,用这两个来实现和数据库的交互在读取数据的时候还是用到sqldatareader来读取数据,然后Fill()到Datset中,这其中必然有映射关系,下面来详细说说datatablemappin... 阅读全文

posted @ 2010-10-13 18:48 qianyz 阅读(318) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页