/// <summary> /// 获取缓存的值 /// </summary> /// <param name="cacheName"></param> /// <returns></returns> public static string GetUpdataString(string cacheName) { if (CacheStringData.ContainsKey(cacheName)) { DataStringModel model = CacheStringData[cacheName]; if (DateTime.Now > model.LastRequestTime.Add(model.TimeSpan)) { lock (model.DataString) { if (DateTime.Now > model.LastRequestTime.Add(model.TimeSpan)) { model.DataString = model.Function.Invoke(model.args); } else { return(model.DataString); } } return(model.DataString); } else { return(model.DataString); } } else { return("缓存管理器中不包含该缓存"); } }
/// <summary> /// 设置缓存 /// </summary> /// <param name="timeSpan">多久更新一次</param> /// <param name="cacheName">缓存名称</param> /// <param name="function">更新缓存的方法</param> /// <param name="args">更新缓存的方法参数</param> public static void SetUpdataStringTiming(TimeSpan timeSpan, string cacheName, Func <Args, string> function, Args args) { if (CacheStringData.ContainsKey(cacheName)) { return; } else { DataStringModel dataStringModel = new DataStringModel(); dataStringModel.DataString = function.Invoke(args); dataStringModel.LastRequestTime = DateTime.Now; dataStringModel.TimeSpan = timeSpan; dataStringModel.Function = function; dataStringModel.args = args; CacheStringData.Add(cacheName, dataStringModel); } }