让我说我有
class a {
public bool this[int index] { ... }
}
我如何lock()
此运营商?例如,如果有人试图调用aInst[4]
,它会阻塞,直到lock()
块完成执行?
答案 0 :(得分:2)
我不确定问题是什么 - 您发布的代码只是一个索引器属性。在该属性的主体中,您可以锁定与任何其他属性或方法中的对象相同的对象。
class a
{
private readonly object _lock = new object();
public bool this[int index]
{
get
{
lock (_lock)
{
return ...;
}
}
set
{
lock (_lock)
{
... = value
}
}
}
public string AMethod()
{
lock (_lock)
{
return ...;
}
}
}