> public class AClass > { > private Dictionary<string, string> Tables_; > private object TableLocker = new Object(); > > > public Dictionary<string, string> Tables > { > get > { > lock (TableLocker) > { > return Tables_; > } > } > private set > { > Tables_ = value; > } > } > > public void ReInitalizeTables() > { > lock (TableLocker) > { > Tables_ = new Dictionary<string, string>(); > Tables_.Add("1", "one"); > Tables_.Add("2", "two"); > } > } > } > >I do not think this is possible either. Your example is using a dictionary list. I am using a NameObjectCollectionBase. And, the item I need to lock is at level 2 at the NameObjectCollectionBase object. So, oApp.Tables is where the lock should occur. I really do not know how we can apply a lock at the second level and also with a Get/Set property approach.