我有一個很少使用的字典,它幾乎不會被讀取或更新,因爲單個項目會引發事件並將其結果與事件參數一起返回。事實上,線程總是要用同一個線程更新。我正在考慮添加一個簡單的鎖來保證安全。我想知道是否可以將鎖放在get訪問器中。這是否工作?我可以鎖定get accessor中的集合嗎?
Dictionary<string,Indicator> indicators = new Dictionary<string,Indicator>();
Dictionary<string, Indicator> Indicators
{
get
{
lock (indicators)
{
return indicators;
}
}
}
public void AddIndicator(Indicator i)
{
lock (indicators)
{
indicators.Add(i.Name, i);
}
}
這不是「數組訪問」 - 它是一個索引器。但更重要的是,當你獲得參考信息後,鎖定將會被釋放*無論你如何處理它*。 –
@jon:感謝提示,我正在編程PHP,因爲它被稱爲數組訪問...... – ChrFin