我正在寻找一个好的ThreadPool实现。我知道.NET ThreadPool已在.NET 4中被重写/改进,但我怀疑它是否符合我的需要。
我有不同数量的任务必须并行执行。我希望能够控制处理这些任务的最大线程数,并且如果可能的话,能够优先处理任务。应该处理空闲线程,并在必要时创建新线程,直到达到指定的最小/最大值。
据我了解,我无法控制.NET ThreadPool使用处理我的任务的线程数(不想影响其余部分)应用程序,即代理),我不能指定一些线程只处理我的任务。
所以我的问题是:
编辑: 根据要求添加了不同数量的线程。
答案 0 :(得分:2)
我认为您正在寻找System.Threading.Tasks.Task类。简化,就像使用ThreadPool一样,但是它会返回任务,它具有与Threads类似的API。不要认为你可以优先考虑任务,但你确实说你想并行运行东西。
答案 1 :(得分:2)
你应该看看那个图书馆。
答案 2 :(得分:1)
ThreadPool
的实施之美是通过增加/减少池大小来响应池负载的能力。
如果您没有这样的要求(固定数量的线程适合您),那么您可能不需要精心设计的线程池。所以你可能需要一个简单的类来抽象创建和管理线程。
答案 3 :(得分:1)