public void Test_Normal_MultiThread_GetInstance() { // given int sameHashCount = 1000; int sameHashCount2 = 1000; var list = new List <Singleton_Normal>(); for (int i = 0; i < sameHashCount; i++) { var t = new Thread(() => { list.Add(Singleton_Normal.GetInstance()); }); t.Start(); } // 等待所有实例都生成好 Thread.Sleep(5000); // when foreach (var item1 in list) { foreach (var item2 in list) { if (item1.GetHashCode() != item2.GetHashCode()) { sameHashCount2 -= 1; break; } } } // then Assert.AreEqual(sameHashCount, sameHashCount2); }
public void Test_Normal_GetInstance() { // given var instance0 = Singleton_Normal.GetInstance(); // when var instance1 = Singleton_Normal.GetInstance(); // then Assert.AreEqual(instance1.GetHashCode(), instance0.GetHashCode()); }