该文被密码保护。 阅读全文
posted @ 2012-11-30 18:47 焦涛 阅读(14) 评论(0) 推荐(0)
摘要: (一) lock 关键字 可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。 (二)lock什么 (1)为什么不能lock值类型.比如lock(1)呢? lock本质上Monitor.Enter,Monitor.Enter会使值类型装箱,每次lock的是装箱后的对象。 lock其实是类似编译器的语法糖,因此编译器直接限制住不能lock值类型。 退一万步说,就算能编译器允许你lock(1),但是object.ReferenceEquals(1,1)始终返回false(因为每次装箱后... 阅读全文
posted @ 2012-11-30 13:47 焦涛 阅读(400) 评论(0) 推荐(0)