我有以下代码:
for (int i = 1; i <= 500; i++)
{
BackgroundWorker t = new BackgroundWorker();
t.DoWork += SOME DB METHOD THAT TAKES 5 SECONDS
t.RunWorkerAsync();
}
当我在 SQL 中对此进行分析时,我注意到BackgroundWorker
似乎以这样一种方式对线程进行排队,即同时打开 4 或 5 个活动连接,而同时打开所有 500 个连接。我的数据库没有超时或阻塞。如何防止这种排队并同时使用所有 500 个并发线程访问数据库?