.Net,长异步操作

时间:2014-02-13 02:37:38

标签: c# .net multithreading threadpool

用户必须重复查询大型数据库以获取信息。这是异步完成的。一次只能运行一个查询。

我没有为每个查询创建一个新线程,因为代码不太干净,维护较少等等。

我没有使用ThreadPool.QueueUserWorkItem,因为这会将ThreadPool线程占用多秒,而我宁愿不通过ThreadPool.SetMinThreads增加最小的ThreadPool线程,因为每个线程都不会使用用户。

我通过创建自己的单线程“ThreadPool”解决了这个问题,它只处理项目。没有创建新线程,没有ThreadPool线程被占用。

我应该避免使用ThreadPool吗?我应该采取不同的方法吗?

编辑: 我仅限于.net 3.5和Visual Studio 2010。

1 个答案:

答案 0 :(得分:1)

  

我没有使用ThreadPool.QueueUserWorkItem,因为这会将ThreadPool线程占用多秒,

ThreadPool非常繁忙时只有(小)问题。但即便如此,“蹲”单个线程并不是一个真正的问题。

所以不,不要创建自己的ThreadPool。这增加了许多无法解决的复杂性。