public void MethodSingletonThreadSafe2() { SingletonThreadSafe2 instance = SingletonThreadSafe2.Instance; Debug.WriteLine(instance); SingletonThreadSafe2 anotherInstance = SingletonThreadSafe2.Instance; Debug.WriteLine(anotherInstance); Assert.AreEqual(instance, anotherInstance); }
public static SingletonThreadSafe2 GetInstance() { if (instance != null) { return(instance); } lock (instance) { if (instance == null) { instance = new SingletonThreadSafe2(); } } return(instance); }
public static void SubMain(String[] args) { SingletonThreadSafe2 instance = SingletonThreadSafe2.GetInstance(); Console.WriteLine(instance); SingletonThreadSafe2 anotherInstance = SingletonThreadSafe2.GetInstance(); Console.WriteLine(anotherInstance); if (instance == anotherInstance) { Console.WriteLine("They are the same instance"); } }