コード例 #1
0
ファイル: Cache.cs プロジェクト: zhangzheng1205/AutoCSer
 /// <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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }