C#Mysql线程
目前我有一个全局C#Mysql线程,c#,mysql,C#,Mysql,目前我有一个全局静态MySqlConnection是跨线程共享的(我知道这很糟糕),但在打开新连接或关闭旧连接时我会锁定,并且只有当线程是第一个创建的线程或最后一个剩下的线程时才会锁定(我还通过静态int MySqlConnected来确定这一点) 目前由于某种原因,它被混淆了,我的设置有什么问题吗?你为什么要这样做 NET运行时在保持连接池并在需要时以安全、无麻烦的方式透明地重新使用它们方面已经相当有效。在我看来,您正试图完成框架已经提供的某些功能。当您需要执行查询时,只需打开一个新连接并使用
静态MySqlConnection代码>是跨线程共享的(我知道这很糟糕),但在打开新连接或关闭旧连接时我会锁定,并且只有当线程是第一个创建的线程或最后一个剩下的线程时才会锁定(我还通过静态int MySqlConnected来确定这一点)
目前由于某种原因,它被混淆了,我的设置有什么问题吗?你为什么要这样做
NET运行时在保持连接池并在需要时以安全、无麻烦的方式透明地重新使用它们方面已经相当有效。在我看来,您正试图完成框架已经提供的某些功能。当您需要执行查询时,只需打开一个新连接并使用它。运行时将为您处理所有其余的事务
此外,使用线程加上静态变量会带来很大的麻烦,导致代码常常以微妙、不明显的方式失败。您似乎正在实现某种自制的锁定机制,这种机制很容易出错。所以,除非你对多线程场景很有经验,否则我不会做这种事情。你是什么意思它被搞混了?你能解释一下你的错误吗?我有一种感觉it@Steve问题是,由于某种原因,执行的查询不正确。我在将值发送到查询之前编写了值,它们完全不同。我还尝试在线程外运行查询,结果非常理想。请查阅.net连接池。你做得不对。