何时使用.NET TPL与简单的.NET线程池?

时间:2014-10-15 14:49:01

标签: .net multithreading

我正在设计一个Windows服务,它将查询数据库表以获取要处理的xml文档列表。我可以得到1份文件,我可以得到100份。我原本打算将每个请求放入.NET线程池进行处理,但我想知道是否有一个使用.NET TPL的模型或示例。是否值得将TPL用于这样一个简单的模型?

1 个答案:

答案 0 :(得分:0)

现在没有理由直接使用线程池。基本方法可能是使用异步I / O来执行数据库请求(无线程),然后继续执行默认(线程池)任务调度程序。如果你需要并行处理(并且它实际上是可行的,所以你可能想避免共享的可变状态),你可以简单地使用Parallel.ForEach等。

当然,如果大多数工作都是由DB而不是客户端应用程序完成的,那么您将能够通过异步I / O完成所有工作。