public void CheckIf_DefaultSingleton_DoesNot_Contain_OneInstance_Parallel() { Parallel.For(0, numberOfThreads, task => { DefaultSingleton.GetSingletonInstance(); }); Assert.AreNotEqual(1, DefaultSingleton.singletonCounter); }
public void TestThredsPerformance_Of_SingleLock_And_Default() { var stopWatch = System.Diagnostics.Stopwatch.StartNew(); stopWatch.Start(); Parallel.For(0, numberOfThreads, task => { SingleCheckSingleton.GetSingletonInstance(); }); stopWatch.Stop(); var elapsedSingleCheck = stopWatch.ElapsedTicks; stopWatch.Start(); Parallel.For(0, numberOfThreads, task => { DefaultSingleton.GetSingletonInstance(); }); stopWatch.Stop(); var elapsedDefaultCheck = stopWatch.ElapsedTicks; Assert.IsTrue(elapsedDefaultCheck > elapsedSingleCheck, string.Format("Elapsed single: {0}, default: {1}", elapsedSingleCheck, elapsedDefaultCheck)); }