【发布时间】:2018-01-21 18:07:53
【问题描述】:
首先一切运行良好。我正在运行一个有 100 个线程的程序,每个线程都在建立数据库连接。一段时间后,我收到以下错误消息:
“无法连接到任何指定的mysql主机”(内部异常: 连接超时)
MySQL 服务器在 Windows 机器上运行 (Win Server 2012)。
我已将mySql连接限制设置为10k,但问题依旧
using (MySqlConnection mConnection = new MySqlConnection(connectionString))
{
mConnection.Open();
using (MySqlCommand myCmd = new MySqlCommand("XXX"))
{
myCmd.CommandType = CommandType.Text;
// DO STUFF HERE
myCmd.Connection.Dispose();
}
mConnection.Close();
mConnection.Dispose();
}
【问题讨论】:
-
你的连接字符串有问题!你没有发布的
-
我认为你最好让你的代码异步并允许任务调度程序处理它认为合适的线程。为像数据库调用这样的 I/O 绑定工作创建线程是对线程的浪费。
-
我以异步方法运行它。该方法由线程池调用
-
您还在等什么?是Task.Run()吗?仍然消耗一个线程并且不应该用于 I/O 绑定工作。
-
我在里面等待一个网络请求
标签: c# mysql multithreading asynchronous connection