【发布时间】:2014-06-24 13:26:04
【问题描述】:
我已经看到获取锁时使用的对象的不同变体
-
一个静态私有对象
public class MyClass { private static object syncBlock = new object(); private void MyMethod() { lock (syncBlock) { } }}
-
类级别的私有对象
public class MyClass { private object syncBlock = new object(); private void MyMethod() { lock (syncBlock) { } } } -
使用类型本身
public class MyClass { private void MyMethod() { lock (typeof (MyClass)) { } } } -
使用这个:
public class MyClass { private void MyMethod() { lock (this) { } } }
有人可以详细说明每种方法的优缺点是什么,以及在给定场景中是否应该优先考虑其中一种方法。
【问题讨论】:
标签: c# multithreading synchronization locking