用户必须重复查询大型数据库以获取信息。这是异步完成的。一次只能运行一个查询。
我没有为每个查询创建一个新线程,因为代码不太干净,维护较少等等。
我没有使用ThreadPool.QueueUserWorkItem,因为这会将ThreadPool线程占用多秒,而我宁愿不通过ThreadPool.SetMinThreads增加最小的ThreadPool线程,因为每个线程都不会使用用户。
我通过创建自己的单线程“ThreadPool”解决了这个问题,它只处理项目。没有创建新线程,没有ThreadPool线程被占用。
我应该避免使用ThreadPool吗?我应该采取不同的方法吗?
编辑: 我仅限于.net 3.5和Visual Studio 2010。
答案 0 :(得分:1)
我没有使用ThreadPool.QueueUserWorkItem,因为这会将ThreadPool线程占用多秒,
ThreadPool非常繁忙时只有(小)问题。但即便如此,“蹲”单个线程并不是一个真正的问题。
所以不,不要创建自己的ThreadPool。这增加了许多无法解决的复杂性。