lock关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。如果其他线程尝试进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。不懂可以看这里: http://msdn.microsoft.com/zh-cn/library/c5kehkcz.aspx
lock是独占所。只是别人不能再锁同一个对象而已。也就不能在同一时刻访问同一个代码块(临界区)。
一个例子:
B/S模式的一个聊天室:
application中加/解锁控制显示浏览人数,需要锁定。但是只是针对一个对象,不影响其他对象的访问,和浏览人数增减变化。
貌似lock有好几种使用,你F12转到定义看看