예제 #1
0
        public static void UseSingleton()
        {
            Console.WriteLine("This is StudentC");
            Singleton singleton = Singleton.CreateInstance();// new Singleton();

            singleton.Show();
        }
예제 #2
0
        //public static Singleton singletonCommon = new Singleton();//只构造一个对象

        private static void Main(string[] args)
        {
            ////Singleton singleton = Singleton.CreateInstance(); //new Singleton();//只构造一个对象
            ////for (int i = 0; i < 10; i++)
            ////{
            ////    Singleton singleton = Singleton.CreateInstance();
            ////    Singleton singleton = new Singleton();//
            ////    singletonCommon.Load();
            ////    singleton.Load();
            ////}

            ////SubClass1.SubSingleton();
            ////SubClass2.SubSingleton();
            ////SubClass3.SubSingleton();

            for (int i = 0; i < 10; i++)
            {
                new Action(() =>
                {
                    Singleton singleton = Singleton.CreateInstance();
                    singleton.Load();
                }).BeginInvoke(null, null);
            }

            Console.Read();
        }
예제 #3
0
        public static void SubSingleton()
        {
            Console.WriteLine("This is SubClass2");
            Singleton singleton = Singleton.CreateInstance();// new Singleton();

            singleton.Load();
        }
예제 #4
0
        //public static Singleton singleton = new Singleton();
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("欢迎大家来到.net高级班vip课程,今天是Eleven老师为大家带来的单例模式");

                TaskFactory taskFactory = new TaskFactory();
                List <Task> taskList    = new List <Task>();


                //for (int i = 0; i < 5; i++)
                //{
                //    taskList.Add(taskFactory.StartNew(() =>
                //     {
                //         Singleton singleton = Singleton.CreateInstance(); //new Singleton();
                //         singleton.Write();
                //     }));
                //}
                //Task.WaitAll(taskList.ToArray());
                //Console.WriteLine("**********************************************************");
                //for (int i = 0; i < 5; i++)
                //{
                //    taskFactory.StartNew(() =>
                //    {
                //        Singleton singleton = Singleton.CreateInstance(); //new Singleton();
                //        singleton.Write();
                //    });
                //}
                {
                    Singleton singleton = Singleton.CreateInstance();
                }

                {
                    for (int i = 0; i < 10000; i++)
                    {
                        taskList.Add(taskFactory.StartNew(() =>
                        {
                            Singleton singleton = Singleton.CreateInstance();  //new Singleton();
                            singleton.Write();
                        }));
                    }
                    Task.WaitAll(taskList.ToArray());
                }
                {
                    Singleton singleton = Singleton.CreateInstance();
                    singleton.ShowI();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }
예제 #5
0
        private static void Main(string[] args)
        {
            var firstSingleton  = Singleton.CreateInstance("Little singleton");
            var secondSingleton = Singleton.CreateInstance("Another singleton");

            Console.WriteLine("First and second instance of the Singleton are {0}",
                              firstSingleton == secondSingleton ? "identical" : "not identical");

            Console.WriteLine("First singleton name is {0}", firstSingleton.GetName());
            Console.WriteLine("Second singleton name is {0}", secondSingleton.GetName());
        }
예제 #6
0
        //public static Singleton singletonCommon = new Singleton();//只构造一个对象

        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("欢迎来到.net高级班公开课之设计模式特训,今天是Eleven老师为大家带来的单例模式Singleton");

                ////Singleton singleton = Singleton.CreateInstance(); //new Singleton();//只构造一个对象
                ////for (int i = 0; i < 10; i++)
                ////{
                ////    Singleton singleton = Singleton.CreateInstance();
                ////    Singleton singleton = new Singleton();//每次都构造一个对象
                ////    singletonCommon.Show();
                ////    singleton.Show();
                ////}

                ////StudentA.UseSingleton();
                ////StudentB.UseSingleton();
                ////StudentC.UseSingleton();

                List <IAsyncResult> resultList = new List <IAsyncResult>();
                for (int i = 0; i < 10; i++)
                {
                    resultList.Add(new Action(() =>
                    {
                        Singleton singleton = Singleton.CreateInstance();
                        singleton.Show();
                    }).BeginInvoke(null, null));//会启动一个异步多线程调用
                }

                while (resultList.Count(r => !r.IsCompleted) > 0)
                {
                    Thread.Sleep(10);
                }
                for (int i = 0; i < 10; i++)
                {
                    resultList.Add(new Action(() =>
                    {
                        SingletonSecond singleton = SingletonSecond.CreateInstance();
                        singleton.Show();
                    }).BeginInvoke(null, null));//会启动一个异步多线程调用
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }
예제 #7
0
 static void Main(string[] args)
 {
     try
     {
         TaskFactory taskFactory = new TaskFactory();
         List <Task> taskList    = new List <Task>();
         for (int i = 0; i < 10; i++)
         {
             taskList.Add(taskFactory.StartNew(() =>
             {
                 Singleton singleton = Singleton.CreateInstance();
             }));
         }
         Task.WaitAll(taskList.ToArray());
         Console.WriteLine("实例化结束");
     }
     catch (Exception e)
     {
         Console.WriteLine("Error:" + e.Message);
     }
     Console.ReadKey();
 }
예제 #8
0
        static void Main(string[] args)
        {
            try
            {
                List <IAsyncResult> resultList = new List <IAsyncResult>();
                for (int i = 0; i < 10; i++)
                {
                    resultList.Add(new Action(() =>
                    {
                        Singleton singleton = Singleton.CreateInstance();
                        singleton.Show();
                    }).BeginInvoke(null, null));//会启动一个异步多线程调用
                }

                while (resultList.Count(r => !r.IsCompleted) > 0)
                {
                    Thread.Sleep(10);
                }


                for (int i = 0; i < 10; i++)
                {
                    resultList.Add(new Action(() =>
                    {
                        //SingletonSecond singleton = SingletonSecond.CreateInstance();
                        SingletonThird singleton = SingletonThird.CreateInstance();
                        singleton.Show();
                    }).BeginInvoke(null, null));//会启动一个异步多线程调用
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }