我正在查看已创建的代码,它在一个方法调用中使用 TryEnter 并在其他方法调用中锁定。所以,像这样:
private readonly object xmppLock = new object();
void f1()
{
if (Monitor.TryEnter(xmppLock))
{
try
{
// Do stuff
}
finally
{
Monitor.Exit(xmppLock);
}
}
}
void f2()
{
lock(xmppLock)
{
// Do stuff
}
}
这样可以吗?
最佳答案
lock
只是 Monitor.Enter
的语法糖,所以是的,它可以正常工作。
(也就是说,锁定诸如 Type
对象之类的公共(public)对象被认为是一种糟糕的形式。)
关于c# - Monitor.TryEnter 和 lock() 是否一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184975/