我想这是一个简单的问题,我如何为每个线程创建一个新连接?
嗯,基本上我是在使用 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/