【发布时间】:2016-06-20 17:57:45
【问题描述】:
我编写了一个 c# 多线程函数,它从 sqlserver 读取数据并为每一行数据启动一个单独的线程。在每个线程中,我都有需要使用 db 的代码。 这是我在每个线程中所做的:
- 创建新的 sql 连接
- 连接到它并打开它
- 工作
- 关闭连接(虽然没有必要)
我应该注意我使用了 Using() 命令,并且我已经阅读了该语句管理 sql 连接并在执行命令后自动关闭它。
这个函数应该定期调用(比如每 1 分钟) 这就是我遇到的问题:
在第一次调用后,活动 sql 连接的数量增加到行数(每行创建的线程)。在第二次调用中,这个数字再次增加。例如,在 5 次调用 100 行之后,我们有 500 个活动 sql 连接! 但我读过连接池管理连接并再次使用创建的连接。 我应该怎么做才能解决这个问题? 我是否遗漏了任何声明或有什么事情我忘记了?
【问题讨论】:
-
请为您的问题提供一些背景信息。你想达到什么目的?这是一个负载测试应用程序吗?
-
它是一个监控服务,我将应该监控的设备插入到 db 并启动一个新线程来监控每个设备
-
看看这是否与您的案例相关:stackoverflow.com/questions/268982/…
标签: c# sql-server multithreading