using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Epost.DAL { public class DB_DLL { private static DataBaseOpration.OprationSqlDAL db; /// /// 程序运行时,创建一个静态只读的进程辅助对象 /// private static readonly object _object = new object(); // //SqlLocDPSConnection public static string _conn = ConfigurationManager.ConnectionStrings["SqlLocDPSConnection"].ConnectionString; /// /// 构造方法私有,外键不能通过New类实例化此类 /// private DB_DLL() { } /// /// 此方法是本类实例的唯一全局访问点 /// (双重加锁 Double-Check Locking) /// /// public static DataBaseOpration.OprationSqlDAL GetInstance() { //先判断实例是否存在,不存在再加锁处理 if (db == null) { //在同一时刻加了锁的那部分程序只有一个线程可以进入, lock (_object) { //如实例不存在,则New一个新实例,否则返回已有实例 if (db == null) { db = new DataBaseOpration.OprationSqlDAL(_conn); } } } return db; } } }