为每个线程分配MySql连接
本文关键字:MySql 连接 分配 线程 | 更新日期: 2023-09-27 18:03:13
我想这是一个简单的问题,我如何创建每个线程的新连接?
嗯,基本上我是使用一个windows服务调用在3个实例的同一进程,但他们每个必须有自己的连接。我现在正在用它来获取连接。
public static MySqlConnection Connection { get; set; }
public static MySqlConnection OpenCon()
{
MySqlConnection masterOpenCON = new MySqlConnection(StaticStringClass.masterConString);
masterOpenCON.Open();
return masterOpenCON;
}
试图解决这个错误:已经有一个开放的数据阅读器与这个连接相关联
尽管我一开始很想批评你的设计。我只回答你给出的代码片段的问题:
[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;
}
希望这对你有帮助。阅读threadstatiattribute获取更多信息。哦,记住,关闭自己的连接是每个线程的责任。
如果你从每个线程调用OpenCon(),它会工作…
否则,如果您使用连接属性,那么您需要将代码{ return Open(); }
放入get处理程序....