首页 > 解决方案 > 带有代码的 Postgres Npgsql 连接池

问题描述

我知道这篇文章:Postgres Npgsql Connection Pooling 但它并没有完全解决我的问题。

我从概念上理解连接池是如何工作的,但我很难理解如何使用 Npgsql 在我的 .NET 应用程序中应用它们。

这是我目前正在做的事情:

NpgsqlConnectionStringBuilder cb ...    // build command and set properties
cb.Pool = True                         // set pool setting to True and set max pool

NpgsqlConnection conn =  new NpgsqlConnection(cb.ConnectionString)

public void thread1()
    NpgsqlCommand cmd = new NpgsqlCommand(conn)
    cmd.Connection.Open()
    // code
    cmd.ExecuteNonQuery
    
    cmd.Connection.Close()

public void thread2() {
    //... same thing
}

据我了解,每当我发出新命令时,我实际上只是从连接池中获取相同的连接。我不明白如何通过只创建一个 NpgsqlConnection 对象来利用连接池的其余部分。

当我执行 NpgsqlConnection.Open()(又名 conn.Open())与 cmd.Connection.Open() 时会发生什么?

我觉得有些基本的东西我不明白。

标签: c#postgresqlconnection-poolingnpgsqlpool

解决方案


推荐阅读