public void CheckIf_DefaultSingleton_DoesNot_Contain_OneInstance_Parallel()
 {
     Parallel.For(0, numberOfThreads, task =>
     {
         DefaultSingleton.GetSingletonInstance();
     });
     Assert.AreNotEqual(1, DefaultSingleton.singletonCounter);
 }
Exemplo n.º 2
0
 public static DefaultSingleton GetSingletonInstance()
 {
     if (singletonInstance == null)
     {
         singletonInstance = new DefaultSingleton();
         singletonCounter += 1;
     }
     return(singletonInstance);
 }
Exemplo n.º 3
0
        public PocSingleton()
        {
            Ds1 = DefaultSingleton.Instance;
            Ds2 = DefaultSingleton.Instance;

            Engine1  = GenericsSingleton <Engine> .Instance;
            Turbine1 = GenericsSingleton <Turbine> .Instance;

            Engine2  = GenericsSingleton <Engine> .Instance;
            Turbine2 = GenericsSingleton <Turbine> .Instance;
        }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="loggerType"></param>
        /// <returns></returns>
        public static ILogger GetLog(LoggerType loggerType)
        {
            switch (loggerType)
            {
            case LoggerType.ConsoleLog:
                return(DefaultSingleton <ConsoleLoger> .GetInstance());

            case LoggerType.NLog:
                return(DefaultSingleton <NLoger> .GetInstance());

            default:
                return(DefaultSingleton <NLoger> .GetInstance());
            }
        }
        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));
        }