06 2010 档案
摘要:今天查看项目代码的时候发现下面这段代码:代码 当时这段代码实现时分了两个Lock为的就是对锁的晚占用,早释放。没想到却带来了多线程环境下可能发生的隐患:某个时刻某个Host的队列长度刚好等于1,这时线程A拥有了锁,那么在第一个Lock检查时该Host队列长度大于0,退出锁。此时另外一个线程B在A退出锁之后也进入了锁,也在第一个Lock检查时发现同一个Host的队列长度大于0,然后退出锁,准备进入...
阅读全文
摘要:.Net 2.0推出以后自定义应用程序配置文件已经很简单了,使用默认的自定义配置文件方式需要在编译时就决定需要自定义的节、元素、属性,这对于一般的应用来说已经够了,但是对于需要支持扩展的应用来说,运行时加载的扩展对象可能需要进行一些配置。如果所有的扩展对象配置都一致,例子可以参考System.Diagnostics命名空间的若干TraceListener类,它们的配置文件的属性都是统一的,因此配置...
阅读全文