/// <summary> /// Func /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <param name="func"></param> /// <returns></returns> public static T GetDate <T> (string key, Func <T> func, int minute) { T result = default(T); if (CustomCache.Contains(key)) { result = CustomCache.Get <T>(key); } else { result = func.Invoke();//DataSource.Count(key); CustomCache.Add(key, result, minute); } return(result); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key">key</param> /// <param name="func">委托</param> /// <returns></returns> public static T CachGet <T>(string key, Func <T> func) { T result = default(T);//准备一个结果集 if (CustomCache.Exist(key)) { result = CustomCache.Get <T>(key); } else { result = func.Invoke(); CustomCache.Add(key, result); } return(result); }
static void Main(string[] args) { try { #region 0124 //for (int i = 0; i < 5; i++) //{ // string key = $"DataSource_Count_123"; // int result = 0; // result = CustomCache.GetDate<int>(key,() => DataSource.Count(123)); // //if (CustomCache.Contains(key)) // //{ // // result = CustomCache.Get<int>(key); // //} // //else // //{ // // result = DataSource.Count(234); // // CustomCache.Add(key,result); // //} // Console.WriteLine($"{i} - {result}"); //} //for (int i = 0; i < 5; i++) //{ // //Console.WriteLine($"{i} - {DataSource.Count(234)}"); // string key = $"DataSource_Count_234"; // int result = 0; // result = CustomCache.GetDate<int>(key, () => DataSource.Count(234)); // //if (CustomCache.Contains(key)) // //{ // // result = CustomCache.Get<int>(key); // //} // //else // //{ // // result = DataSource.Count(234); // // CustomCache.Add(key, result); // //} // Console.WriteLine($"{i} - {result}"); //} #endregion #region 0125 //for (int i = 0; i < 5; i++) { string key = $"DataSource_Count_123"; int result = 0; result = CustomCache.GetDate <int>(key, () => DataSource.Count(123), 1); Console.WriteLine($" {result}"); CustomCache.Remove(key); CustomCache.RemoveAll(); // result = CustomCache.GetDate<int>(key, () => DataSource.Count(123),1); result = CustomCache.GetDate <int>(key, () => DataSource.Count(123), 1); Thread.Sleep(70000); result = CustomCache.GetDate <int>(key, () => DataSource.Count(123), 1); } #endregion } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }