/// <summary> /// 缓存数据加载完成 /// </summary> /// <param name="onInserted">添加记录事件</param> /// <param name="onUpdated">更新记录事件</param> /// <param name="onDeleted">删除记录事件</param> /// <param name="isLoadMemberCache">是否加载缓存依赖类型</param> /// <param name="isSqlStreamTypeCount">是否日志流计数完成类型注册</param> public void Loaded(Action<valueType> onInserted = null, OnCacheUpdated onUpdated = null, Action<valueType> onDeleted = null, bool isLoadMemberCache = true, bool isSqlStreamTypeCount = true) { if (onInserted != null) OnInserted += onInserted; if (onUpdated != null) OnUpdated += onUpdated; if (onDeleted != null) OnDeleted += onDeleted; SqlTable.CacheLoaded(isLoadMemberCache, isSqlStreamTypeCount); }
public void Update(List <T> list) { lock (Caches) { list.ForEach((data) => { Caches[BuildCacheKey(data)] = data; }); } OnCacheUpdated?.Invoke(list); timer = new Timer(OnTimerCallback, null, 1 * 1000, 30 * 1000); }
public void Update() { if (CacheMethod == null) { throw new InvalidOperationException("No cache method is set."); } CacheTime = DateTime.Now; Expiration = (UpdateExpirationMethod ?? DefaultUpdateExpirationMethod)(CacheTime); _Value = CacheMethod(); OnCacheUpdated?.Invoke(CacheTime, _Value); }