Esempio n. 1
0
        //对AppConfig对象的GetInstance加锁
        private static void AsyncCreateAppConfigWithLock()
        {
            AppConfigWithLock appConfig1 = null;
            AppConfigWithLock appConfig2 = null;
            Action            createA    = () => appConfig1 = AppConfigWithLock.GetInstance();
            Action            createB    = () => appConfig2 = AppConfigWithLock.GetInstance();

            Parallel.Invoke(createA, createB);

            Console.WriteLine(object.ReferenceEquals(appConfig1, appConfig2));

            Console.ReadKey();
        }
Esempio n. 2
0
 //获取唯一实例
 public static AppConfigWithLock GetInstance()
 {
     if (appConfig == null)
     {
         lock (asyncRoot)
         {
             if (appConfig == null)
             {
                 appConfig = new AppConfigWithLock();
             }
         }
     }
     return(appConfig);
 }