1

我正在使用带有锁对象的 SQLconnector 单例类。我现在的问题是,如果多个用户同时使用这个类,这会产生问题吗?

仅供参考...单例代码

public sealed class SqlConnector
{
   private static volatile SqlConnector instance;
   private static object syncRoot = new Object();

   public static SqlConnector Instance
   {
     get
     {
         if (instance == null)
         {
            lock (syncRoot)
            {
               if (instance == null)
               {
                  instance = new SqlConnector();
               }
            }
         }
         return instance;
      }
   }

   public Execute(...)
   {
     //what ever
   }
}
4

2 回答 2

1

将 SqlConnector 用作 Singleton 并不是一个很好的做法。连接池将为您处理它。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx

要部署高性能应用程序,您必须使用连接池。当您使用 SQL Server 的 .NET Framework 数据提供程序时,您不必启用连接池,因为提供程序会自动管理它,尽管您可以修改某些设置。有关详细信息,请参阅 SQL Server 连接池 (ADO.NET)。

SQL Server 连接池 (ADO.NET)

于 2013-05-16T08:57:08.007 回答
0

SqlConnector 类应该是线程安全的

于 2013-05-16T08:48:01.607 回答