zoukankan      html  css  js  c++  java
  • C#单例模式

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    using System.Configuration;

    namespace VehicleTrading.DAL
    {
        ///
        /// 数据库连接练习单例模式
        ///
        public class Sqlconn
        {
            private static SqlConnection con = null;
            private static object obj = new object();
            ///
            /// 定义公共静态属性instance,外部调用
            ///
            public static SqlConnection Instance
            {
                get
                {
                    // 当第一个线程运行到这里时,此时会对locker对象 "加锁",
                    // 当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁
                    // lock语句运行完之后(即线程运行完之后)会对该对象"解锁"
                    // 双重锁定只需要一句判断就可以了
                    if (con == null)
                    {
                        lock (obj)
                        {
                            if (con == null)
                            {
                                var str = ConfigurationManager.ConnectionStrings["MyStr"].ConnectionString;//获取配置文件中的数据库连接字符串
                                con = new SqlConnection(str);//实例化
                                try
                                {
                                    con.Open();
                                }
                                catch (Exception e)
                                {
                                    return null;
                                }
                            }
                        }
                    }
                    return con;
                }
            }
        }
    }

  • 相关阅读:
    夺命雷公狗---javascript NO:11 事件对象1
    夺命雷公狗---javascript NO:10 解决事件监听兼容性问题和移除事件
    夺命雷公狗---javascript NO:09 事件绑定的种类1
    夺命雷公狗---javascript NO:08 常用的事件
    夺命雷公狗---javascript NO:07 事件编程介绍
    夺命雷公狗---javascript NO:06 数组定义和遍历
    夺命雷公狗---javascript NO:05 js函数中的作用域
    夺命雷公狗---javascript NO:04 js中的函数
    夺命雷公狗---javascript NO:03 流程结构
    夺命雷公狗---javascript NO:02 数据类型和运算符
  • 原文地址:https://www.cnblogs.com/myleave/p/12567291.html
Copyright © 2011-2022 走看看