jso*_*son 0 c# multithreading database-connection sql-server-2005
我有一个Windows服务(C#),我创建多个线程,尝试更新我的数据库中的状态(SQL Server 2005).
我SELECT最初有一个,UPDATE后来必须执行.当我不使用锁来同步我的线程时,我收到错误
已经有一个与此Connection关联的开放DataReader,必须先关闭它
但是当我使用lock(在静态对象上)时,更新速度非常慢.
任何人都可以帮助我解决这个问题.
在尝试将其连接用于其他任何事情之前,请确保您的DataReader已关闭.我建议你重构你的代码,这样你就不会在线程之间共享连接.如果您可以提供有关您想要实现的内容的更多信息,我可以提供有用的代码示例.
您在应用程序中使用的每个命令对象都应该拥有自己的连接对象,在执行命令之前立即打开,然后立即关闭.(最好包含在using声明中)
信任连接池技术来处理实际的底层连接.这将阻止多个线程同时尝试在同一连接上执行多个命令(这就是您所看到的错误).
线程之间唯一应该共享的是连接字符串.
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |