我有一个项目和一个类库。
我需要类库来更新存储项。在我的项目中,我需要访问这些存储项目。我可以在不同项目的同一个实例上使用lock
,这会有效吗?
答案 0 :(得分:6)
只要您真正锁定同一个对象,那就应该可以正常工作。如果你使用不同的AppDomains,事情会变得更复杂,但是如果它(例如)项目A和项目B都锁定了一个最初来自项目C的对象,那应该不是问题。
至少,它在技术上 。我个人通常更喜欢将锁保持为私有 - 例如,不是锁定this
或从其他地方获得的引用,我经常创建一个唯一目的锁定的对象:
public class Foo
{
private readonly object mutex = new object();
...
}
这样我知道可以获取该锁的唯一代码是Foo
中的代码。它使锁更易于推理。