private object LoadFromAppSession(DomainProperty property) { object data = null; var datas = GetDatasFromAppSession(); //由于使用了appSession,因此是线程安全的 if (!datas.TryGetValue(property.Name, out data)) { data = LoadData(property); if (data == null) { data = property.GetDefaultValue(this.Owner, property); } datas.Add(property.Name, data); } return(data); }
private object LoadFromShare(DomainProperty property) { object data = null; if (!_shareDatas.TryGetValue(property.Name, out data)) { lock (_shareDatas) //由于引入了缓冲池机制,我们要保证多线程同时访问一个对象的并发安全 { if (!_shareDatas.TryGetValue(property.Name, out data)) { data = LoadData(property); if (data == null) { data = property.GetDefaultValue(this.Owner, property); } _shareDatas.Add(property.Name, data); } } } return(data); }