0
可以說我有是否可以鎖定一個重載的括號操作符?
class a {
public bool this[int index] { ... }
}
我如何lock()
此操作?例如,如果有人試圖撥打aInst[4]
,它會阻止,直到lock()
塊完成執行?
可以說我有是否可以鎖定一個重載的括號操作符?
class a {
public bool this[int index] { ... }
}
我如何lock()
此操作?例如,如果有人試圖撥打aInst[4]
,它會阻止,直到lock()
塊完成執行?
我不太確定問題是什麼 - 您發佈的代碼只是一個索引器屬性。在該屬性的主體中,您可以鎖定與其他任何屬性或方法中相同的對象。
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 ...;
}
}
}
好吧,由於某種原因,我在印象之下,你可以鎖定一個函數被調用,但它似乎並非如此。這正是我要找的,謝謝。 – BWG
輕微的術語改進:您不能鎖定_properties_,您鎖定_objects_。 – Psi