摘要: 1.几种同步方法的区别lock和Monitor是.NET用一个特殊结构实现的,Monitor对象是完全托管的、完全可移植的,并且在操作系统资源要求方面可能更为有效,同步速度较快,但不能跨进程同步。lock(Monitor.Enter和Monitor.Exit方法的封装),主要作用是锁定临界区,使临界区代码只能被获得锁的线程执行。Monitor.Wait和Monitor.Pulse用于线程同步,类似... 阅读全文
posted @ 2010-04-17 19:17 Ale 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 本篇继续介绍WaitHandler类及其子类Mutex,ManualResetEvent,AutoResetEvent的用法。.NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解呢?其实,我们抛开.NET环境看线程同步,无非是执行两种操作:一是互斥/加锁,目的是保证临界区代码操作的“原子性”;另一种是信号灯操作,目的是保证多个线程按照一定顺序执行,如生产者线程要先... 阅读全文
posted @ 2010-04-17 19:16 Ale 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 本篇从Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的类关系图开始,希望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,而对每种方式的使用细节,适用场合不会过多解释。让我们来看看这几个类的关系图: 1.lock关键字 lock是C#关键词,它将语句块标记为临界区,确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如... 阅读全文
posted @ 2010-04-17 19:14 Ale 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 最近公司要求使用Team Explorer,顺利安装后结果总是激活不了,卸载VS2008,重新安装后还是那样。实在无奈都有重装系统的冲动了,后来仔细考虑下,可能是因为用户的配置数据没有删除掉。尝试恢复Visual Studio 初始状态 :1。关闭所有的Visual Studio 实例2。单击“开始”,选择“运行...”。3。键入“dev... 阅读全文
posted @ 2010-04-17 10:45 Ale 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 最近公司要求使用Team Explorer,顺利安装后结果总是激活不了,卸载VS2008,重新安装后还是那样。实在无奈都有重装系统的冲动了,后来仔细考虑下,可能是因为用户的配置数据没有删除掉。尝试恢复Visual Studio 初始状态 :1。关闭所有的Visual Studio 实例2。单击“开始”,选择“运行...”。3。键入“dev... 阅读全文
posted @ 2010-04-17 10:42 Ale 阅读(151) 评论(0) 推荐(0) 编辑