说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

关于链接池的问题?

编辑:说三道四文库 发布时间:2018-07-17 09:33
HTML文档下载 WORD文档下载 PDF文档下载
connectionQueue为定义的链接池。
初始化时:
for(int i = 0; i < 20; ++i){
  sqlConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
  connectionQueue.Enqueue(sqlConnection);
}
放入了20个数据库链接。


取链接时:
public SqlConnection getSqlConnection()
{
  SqlConnection con = null;
  lock(connectionQueue)
  {
     if(connectionQueue.Count > 0)
     {
con = (SqlConnection)connectionQueue.Dequeue();
     }
     else
     {
         //此处想让线程wait
     }
}
  return con;
}

返回链接时:
public void returnConnection(SqlConnection sqlConnection)
{
   lock(connectionQueue.SyncRoot)
   {
connectionQueue.Enqueue(sqlConnection);
//此处想唤醒前面等待的线程
   }
}

不知道上面两行注释的地方该怎么写,有没有像JAVA里面wait和notifyAll的方法。
关注,想学。
为什么不直接设置ConnectionString属性?
因为用的时候不知道具体的ConnectionString,写到Web.config里面到时候更改就不用重新编译
up一下
分不够可以再加啊
up
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘