コード例 #1
0
ファイル: Program.cs プロジェクト: 793059747/CodeLibrary
        static void Main(string[] args)
        {
            try
            {
                #region 单线程调用
                //for (int i = 0; i < 5; i++)
                //{
                //    Singleton singleton = Singleton.CreateInstance();
                //    singleton.Show();
                //}
                #endregion

                #region 多线程调用:懒汉式
                //for (int i = 0; i < 5; i++)
                //{
                //    Task.Run(() =>//启动一个线程执行这些动作;可以认为5个同时执行
                //    {
                //        Singleton singleton = Singleton.CreateInstance();
                //        singleton.Show();
                //    });
                //}
                #endregion

                #region 多线程调用:饿汉式(静态构造函数)
                for (int i = 0; i < 5; i++)
                {
                    SingletonSecond singletonSecond = SingletonSecond.CreateInstance();
                    singletonSecond.Show();
                }
                #endregion

                #region 多线程调用:饿汉式(静态字段)
                //for (int i = 0; i < 5; i++)
                //{
                //    Task.Run(() =>
                //    {
                //        SingletonThird singletonThird = SingletonThird.CreateInstance();
                //        singletonThird.Show();
                //    });
                //}
                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }
コード例 #2
0
 /// <summary>
 /// 静态构造函数:由CLR保证,在第一次使用到这个类型之前,自动被调用且只调用一次
 /// 很多初始化都可以写在这里
 /// </summary>
 static SingletonSecond()
 {
     _SingletonSecond = new SingletonSecond();
 }