随笔分类 -  DotNet

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 阅读(1922) 评论(7) 推荐(0) 编辑

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 阅读(9788) 评论(87) 推荐(5) 编辑

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

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

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

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

.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 阅读(2623) 评论(1) 推荐(2) 编辑

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

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

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

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

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示