转自:http://www.cnblogs.com/woxpp/p/3941550.html
背景
有时候访问变量、实例、方法、属性或者结构体,而这些并没有准备好用于并发访问,或者有时候需要执行部分代码,而这些代码必须单独运行,这是不得不通过将任务分解的方式让它们独立运行。
当任务和线程要访问共享的数据和资源的时候,您必须添加显示的同步,或者使用原子操作或锁。
之前的.NET Framework提供了昂贵的锁机制以及遗留的多线程模型,