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));
        }