2011年5月30日

Microsoft.Practices.Unity 的一个线程安全Bug浅析

摘要: 从接触Enterprise Library开始,到现在越来越感觉的Elib的强大。虽然单独看Elib里面的Block不一定是优秀的,但是作为一个整体其优势不言而喻。更重要的是Elib是MS的团队在维护,不用担心MS会把它吃掉。 这段时间一直在Elib上进行开发,Unity也是用的最多的一个Block了。由于都是在单机开发BS系统,因此很少应用到多线程,多线程的问题也没有怎么暴露出来。以前也潜意识的认为MS会把线程安全处理好,但是今天发现其实不然。测试代码如下:1classProgram2{3staticUnityContainercontainer;4staticboolstop;5stat. 阅读全文

posted @ 2011-05-30 17:18 Kain 阅读(1918) 评论(7) 推荐(0) 编辑

2011年3月14日

NET Reflector 7发布,其 不再免费

摘要: 今天看到NET Reflector不再免费的消息感觉有点惊讶,这个工具已经成为每个开发人员必备的工具之一了。而且CodePlex上也有很多围绕NET Reflector开发的插件。今天其不再免费了,难道逼大家去Crack么?35美刀不便宜啊。官方的原文:10 Mar 2011 Version 7 is now available from $35. We're happy to announce that we've released .NET Reflector 7. Please visit the new website at www.reflector.net to f 阅读全文

posted @ 2011-03-14 10:11 Kain 阅读(9785) 评论(87) 推荐(5) 编辑

2010年8月19日

(抽象)工厂的另一种实现方式

摘要: 工厂模式是在设计模式中比较容易理解和掌握的一种模式,其使用非常的普遍。在项目实践中个人对常用的工厂模式做了一个调整,整个实现有点像工厂模式和抽象工厂模式的混合体,这样做的好处在于结合工厂模式的易用和抽象工厂的灵活。具体的实现可能如下:在这个Case中有2个类,2个接口。其中IServiceFactory定义了工厂的职责GetService<T>,ServiceFactory实现ISer... 阅读全文

posted @ 2010-08-19 17:51 Kain 阅读(1408) 评论(1) 推荐(0) 编辑

2010年8月13日

自定义EF4 Model 代码生成

摘要: 在VS2010中EF4提供了三种代码生成方式:EntityObject,POCO,Self-Tacking。默认VS2010只带有EntityObject模板,可以通过浏览Online Templates中的项目将剩余的两种添加到本地模板文件中来。三种代码模板都是通过T4模板引擎来实现的,因此通过分析一下模板文件我们也能够实现自己的代码生成器。 在项目中添加一个模板文件,打开.tt的文件,在文件的... 阅读全文

posted @ 2010-08-13 10:41 Kain 阅读(3716) 评论(2) 推荐(0) 编辑

2010年8月12日

.net 4.0 中对多线程新特性(四)--任务和任务工厂

摘要: 在4.0前如果需要进行并行任务往往都是自己实现Task和Task Factory来管理任务,其中难免会牵涉到大量的线程和线程池的管理工作。到了4.0 这部分内容都已经集成到基础类库中了。在System.Threading.Task中新增了几个类:TaskTaskFactoryTaskScheduler这几个类一看名字就知道干啥的了,先看看Task的一个简单例子代码 Code highlightin... 阅读全文

posted @ 2010-08-12 17:12 Kain 阅读(2620) 评论(0) 推荐(2) 编辑

2010年8月10日

.net 4.0 中对多线程新特性(三)

摘要: 在4.0之前如果需要在多线程环境下操作集合类型的对象往往需要额为每种操作添加比较复杂的锁机制才能保证每个线程对资源的访问安全,在4.0的Collection名称空间下面又多了一个新的名称空间Concurrent,在这个名称空间下面增加了几个非常有用的线程安全的类:BlockingCollection<T> 为实现 IProducerConsumerCollection<(Of &... 阅读全文

posted @ 2010-08-10 14:32 Kain 阅读(2792) 评论(2) 推荐(1) 编辑

2010年8月9日

.net 4.0 中对多线程新特性(二)

摘要: 上篇已经简单介绍了.net 4.0中Lazy<T>类,通过Lazy<T>我们可以很容易的延迟初始化一些对象。如果我们需要在多线程环境下建立一些线程级别应用可以使用ThreadLocal<T>。在MSND中我们可以了解到除了Dispose之外,ThreadLocal<T> 的所有公共和受保护的成员都是线程安全的,可从多个线程同时使用。Value 和 I... 阅读全文

posted @ 2010-08-09 13:51 Kain 阅读(2622) 评论(1) 推荐(2) 编辑

2010年7月30日

.net 4.0 中对多线程新特性(一)

摘要: 在.net 40中对多线程的处理增加了很多新的类以方便多线程环境下的编程实现,首先需要了解的是两个非常有用的类Lazy和ThreadLazy,通过这两个类我们可以很方便实现一个单例模式而不用考虑太多的线程安全的问题。 阅读全文

posted @ 2010-07-30 16:32 Kain 阅读(2436) 评论(5) 推荐(0) 编辑

2007年12月13日

Flex&.Net开篇

摘要: Flex学习心得和一些Flex资料推荐 阅读全文

posted @ 2007-12-13 11:43 Kain 阅读(448) 评论(0) 推荐(0) 编辑

2007年11月2日

SqlSever N层表数据查询效率

摘要: 在做数据内联查询时,随着Join的表越多查询的性能会急剧下降。为了提高查询这种深层次对象的效率,采用了一种折中的办法就是将相邻两个表作join将主键插入一个表变量,然后作为下一个表查询的条件 阅读全文

posted @ 2007-11-02 11:08 Kain 阅读(2133) 评论(7) 推荐(0) 编辑

导航