using System.Collections.Concurrent;internal class Program
{static void Main(string[] args){ConcurrentDictionary<string, RedisConnection> redisConnectionDic = new ConcurrentDictionary<string, RedisConnection>();int redisConn =10;//会多次创建//Parallel.For(1, 10, i =>//{// redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(i); });//});//会多次创建//redisConnectionDic.GetOrAdd(redisConn.ToString(), CreateRedisClient(1));//redisConnectionDic.GetOrAdd(redisConn.ToString(), CreateRedisClient(2));redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(1); });redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(2); });//for (int i = 0; i < 10; i++)//{// redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(i); });//}Console.WriteLine("Hello, World!");Console.ReadLine();}public static RedisConnection CreateRedisClient(int cluster_id){Console.WriteLine($"正在初始化 cluster_id={cluster_id} 的redis 连接");Thread.Sleep(1000);return new RedisConnection();}
}public class RedisConnection
{ }
c# ConcurrentDictionary
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com