我有25个线程在运行。并且每个线程都遵循:
启动所有线程后,我需要等待线程完成处理,为此我使用了Thread.Join
。我的问题是,线程甚至在完成上述步骤之前就完成了完成任务。我能在这里看到的唯一原因是,数据库表的大小逐渐增加到超过2000万条记录。在那里,插入数据需要一些时间。是否在等待向SQL Server插入数据时线程被中止?我甚至尝试过使用Task.Factory.StartNew
和ContinueWhenAll
,但结果是一样的。有没有更好的方法来处理这个?
答案 0 :(得分:0)
似乎在某些线程中抛出异常。可能是因为与数据库的并发连接的限制。您需要实现正确的错误处理和日志记录以了解根本原因。
答案 1 :(得分:0)
一些事情。
1)如果此任务似乎在所有线程执行完毕之前完成,则说明您使用的是同步错误
2)您的数据库可能在其池中的可用连接中用尽。我相信默认情况下大多数数据库允许10个并发连接(我假设您正确配置)。
CW因为这是一个很长的评论。