C# 为每个线程分配 MySql 连接

标签 c# mysql

我想这是一个简单的问题,我如何为每个线程创建一个新连接?

嗯,基本上我是在使用 Windows 服务来调用同一进程的 3 个实例,但是每个实例都必须有自己的连接。我现在正在使用它来获取连接。

public static MySqlConnection Connection { get; set; }
    public static MySqlConnection OpenCon()
    {
        MySqlConnection masterOpenCON = new MySqlConnection(StaticStringClass.masterConString);
        masterOpenCON.Open();
        return masterOpenCON;
    }

正在尝试解决此错误:已经有一个与此连接关联的打开的 DataReader

最佳答案

尽管我最初有这种冲动,但我不会批评您的设计。我只是根据您提供的代码片段回答您的问题:

[ThreadStatic]
private static MySqlConnection _connection;

public static MySqlConnection GetConnection() {
    // no need for locks on a threadstatic field, obviously.
    if (_connection == null) {
        _connection = new MySqlConnection(...);
        _connection.Open();
    }
    return _connection;
}

希望这对您有所帮助。阅读 ThreadStaticAttribute 了解更多信息。哦,请记住,关闭自己的连接是每个线程的责任。

关于C# 为每个线程分配 MySql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770427/

相关文章:

c# - 如何创建包含一个字符串变量和三个 int 变量的字典

c# 从我的自定义应用程序拖放到记事本

c# - 检测 DataContext 表或 View 是否存在的快速方法

mysql - SQL (MySQL) 根据今天的日期返回查询结果

php - 获取特定json中的mysql结果

基于 MySQL 日期值和今天的 Javascript 着色行

php - 如何在 PHP 中查询数据库并根据匹配的用户输入返回结果?

c# - C# 的面向方面的编程库(紧凑型框架 3.5)

mysql - 如何成功地将 InnoDB 表复制到另一个 Linux 安装?

c# - 检查本地组是否已存在的优雅方法