类似缓存

mac2024-08-03  56

using System; using System.Collections.Generic; using System.Threading;

namespace Icometrue {     class Program     {         private static Dictionary<string, object> CacheDictionary = new Dictionary<string, object>();

        /// <summary>         /// 添加缓存         /// </summary>         public static void Add(string key, object value)         {             CacheDictionary.Add(key, value);         }

        /// <summary>         /// 获取缓存         /// </summary>         public static T Get<T>(string key)         {             return (T)CacheDictionary[key];         }

        /// <summary>         /// 判断缓存是否存在         /// </summary>         /// <param name="key"></param>         /// <returns></returns>         public static bool Exsits(string key)         {             return CacheDictionary.ContainsKey(key);         }

        static void Main(string[] args)         {             //缓存

            Console.WriteLine("Hello World!");             //for (int i = 1; i < 6; i++)             //{             //    Console.WriteLine($"------第{i}次请求------");             //    //int result = DataSource.GetDataByDB(666);             //    int result = 0;             //    //key的名字一定要确保请求的准确性 DataSource GetDataByDB 666缺一不可             //    string key = "DataSource_GetDataByDB_666";             //    if (Exsits(key))             //    {             //        //缓存存在,直接获取原数据             //        result = Get<int>(key);             //    }             //    else             //    {             //        //缓存不存在,去生成缓存,并加入容器             //        result = DataSource.GetDataByDB(666);             //        CacheDictionary.Add(key, result);             //    }             //    Console.WriteLine($"第{i}次请求获得的数据为:{result}");             //}

        }

           }

    public class DataSource     {         /// <summary>         /// 模拟从数据库读取数据         /// 耗时、耗CPU         /// </summary>         /// <param name="count"></param>         public static int GetDataByDB(int count)         {             Console.WriteLine("-------GetDataByDB-------");             int result = 0;             for (int i = count; i < 99999999; i++)             {                 result += i;             }             Thread.Sleep(2000);             return result;         }     } }

 

最新回复(0)