0

目前我有一个static MySqlConnection connection;在线程之间共享的全局变量(不好,我知道),但我在打开新连接或关闭旧连接时锁定,并且只有在线程是第一个创建的线程或最后一个留下的线程时才这样做(我也通过静态 int MySqlConnected 确定这一点)。

目前由于某种原因它混淆了,我的设置有什么问题?

4

1 回答 1

2

你为什么要这样做?

.NET 运行时在保持连接池并根据需要以安全且轻松的方式透明地重用它们方面已经非常有效。在我看来,您正在尝试完成框架已经提供的某些事情。当您需要执行查询时,只需打开一个新连接并使用它。运行时将为您处理所有其余的事情。

此外,使用线程加上静态变量是一个很好的解决方法,导致代码经常以微妙的、不明显的方式失败。您似乎正在实施某种很容易出错的本土锁定机制。所以除非你对多线程场景非常有经验,否则我会远离这种事情。

于 2013-05-30T13:52:11.770 回答