解了以后发现singleton的重要
点击(此处)折叠或打开
- static void Main(string[] args)
- {
- Task.Run(() => Console.WriteLine(ConfigStore.Amigo.CategoryIDs));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.ApiPath2));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.ApiPathByB2B2));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.AuthAPIName));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.CreateOrderToken));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.JWTSecret));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.LdapPath));
- Task.Run(() => Console.WriteLine(ConfigStore.Common.IsTestCase));
- Console.Read();
- }
以这段CODE来模拟同时间呼叫 原本的写法在建立的时候是这样做
点击(此处)折叠或打开
- Console.WriteLine("中間");
- if (signalled = mutex.WaitOne(2000))
- {
- Console.WriteLine("裡面");
- if (instance == null)
- {
- Console.WriteLine("很裡面");
- instance = new ConsulConfigStore();
- }
- }
发生了两秒过去了会让NULL的物件继续往前走
所以改回了这样的写法
点击(此处)折叠或打开
- Console.WriteLine("中間");
- if (instance == null)
- {
- lock (o)
- {
- Console.WriteLine("裡面");
- if (instance == null)
- {
- Console.WriteLine("很裡面");
- instance = new ConsulConfigStore();
- }
- }
- }
纪录纪录