public static void Run() { CacheManager cm = new CacheManager(2, 5); Random rnd = new Random(); List<Task> tasks = new List<Task>(); for (int i = 0; i < 30; i++) { Worker w = new Worker(cm, "key" + i % 6, rnd.Next(200, 1000)); Task task = Task.Factory.StartNew(() => w.Run()); tasks.Add(task); Thread.Sleep(3); } Task.WaitAll(tasks.ToArray()); }
/// <summary> /// 解析可选参数列表 /// </summary> /// <param name="cacheManagerParams"></param> /// <returns></returns> private static CacheManager CreateCacheManager(params object[] cacheManagerParams) { int threadCount = -1; if (cacheManagerParams != null && cacheManagerParams.Length > 0 && cacheManagerParams[0] != null) { if (!Int32.TryParse(cacheManagerParams[0].ToString(), out threadCount)) { threadCount = -1; } } CacheManager cm = null; if (threadCount > 0) { cm = new CacheManager(threadCount); } else { cm = new CacheManager(); } return cm; }
public Worker(CacheManager cm, string key, int round) { m_cm = cm; m_key = key; m_round = round; }