什么时候适合在 C # 中使用 Monitor
类或者 lock
关键字来保证线程安全?
编辑:
从目前的答案来看,lock
是对 Monitor
类的一系列调用的简写。锁定调用的简称是什么?或者更明确地说,
class LockVsMonitor
{
private readonly object LockObject = new object();
public void DoThreadSafeSomethingWithLock(Action action)
{
lock (LockObject)
{
action.Invoke();
}
}
public void DoThreadSafeSomethingWithMonitor(Action action)
{
// What goes here ?
}
}
更新
感谢大家的帮助: 我已经发布了另一个问题,作为你们提供的一些信息的后续。因为你似乎很精通这方面,我已经张贴了链接: 这种锁定和管理锁定异常的解决方案有什么问题?