多线程就离不开lock,lock的本质是一个语法糖,采用了监视器Monitor. lock的参数,错误方式有很多种,只需要记住一种:private static readonly object lockobj=new object();只要写这行代码就不会错了,其他的公共的,值类型,this等,就被排除了. 那么为什么不能使用是公共属性或者this呢? 因为你在代码里锁了this或者公共属性,而外部调用是也可能同样先锁住,这样内部代码一直等待外部释放,外部一直等待内部执行,就死锁了. using…