Exemplo n.º 1
0
 public void Init(int count, string connectionString)
 {
     for (int i = 0; i < count; i++)
     {
         DbConnection connection = Npgsql.NpgsqlFactory.Instance.CreateConnection();
         connection.ConnectionString = connectionString;
         connection.Open();
         DBConnectionItem item = new DBConnectionItem();
         item.Pool       = this;
         item.Connection = connection;
         mConnectionPool.Push(item);
     }
 }
Exemplo n.º 2
0
            public void Push(DBConnectionItem item)
            {
                TaskCompletionSource <DBConnectionItem> work = null;

                lock (this)
                {
                    if (mWaitQueue.Count > 0)
                    {
                        work = mWaitQueue.Dequeue();
                    }
                    else
                    {
                        mConnectionPool.Push(item);
                    }
                }
                if (work != null)
                {
                    Task.Run(() => work.SetResult(item));
                }
            }