Exemplo n.º 1
0
 /// <summary>
 /// 获取线程安全的单例实例
 /// 在第一次调用的时候创建单例实例
 /// </summary>
 /// <returns></returns>
 public static SingletonV2 GetInstance()
 {
     //使用锁来保证线程安全
     if (_instance == null)
     {
         lock (lockObj)
         {
             if (_instance == null)
             {
                 _instance = new SingletonV2();
             }
         }
     }
     return _instance;
 }
Exemplo n.º 2
0
 /// <summary>
 /// 获取线程安全的单例实例
 /// 在第一次调用的时候创建单例实例
 /// </summary>
 /// <returns></returns>
 public static SingletonV2 GetInstance()
 {
     //使用锁来保证线程安全
     if (_instance == null)
     {
         lock (lockObj)
         {
             if (_instance == null)
             {
                 _instance = new SingletonV2();
             }
         }
     }
     return(_instance);
 }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            ClassicSingleton classicSingleton1 = ClassicSingleton.GetInstance();
            ClassicSingleton classicSingleton2 = ClassicSingleton.GetInstance();

            Console.WriteLine(classicSingleton1 == classicSingleton2);

            SingletonV1 singletonV1_1 = SingletonV1.GetInstance();
            SingletonV1 singletonV1_2 = SingletonV1.GetInstance();

            Console.WriteLine(singletonV1_1 == singletonV1_2);

            SingletonV2 singletonV2_1 = SingletonV2.GetInstance();
            SingletonV2 singletonV2_2 = SingletonV2.GetInstance();

            Console.WriteLine(singletonV2_1 == singletonV2_2);


            Console.ReadLine();
        }