我正在寻找一个好的线程池实现。我知道.NET ThreadPool在.NET 4中已经被重写/改进,但我怀疑它是否符合我的需求。
我有许多需要并行执行的任务。我想能够控制同时工作在这些任务上的最大线程数,并且如果可能的话能够为这些任务设置优先级。空闲的线程应该被释放,必要时应创建新的线程,不超过指定的最小/最大线程数。
据我所知,我无法控制.NET ThreadPool用于处理"我的"任务的线程数(不希望影响应用程序的其他部分,即委托),也无法将一定数量的线程分配给仅处理我的任务。
因此,我的问题是:
我有许多需要并行执行的任务。我想能够控制同时工作在这些任务上的最大线程数,并且如果可能的话能够为这些任务设置优先级。空闲的线程应该被释放,必要时应创建新的线程,不超过指定的最小/最大线程数。
据我所知,我无法控制.NET ThreadPool用于处理"我的"任务的线程数(不希望影响应用程序的其他部分,即委托),也无法将一定数量的线程分配给仅处理我的任务。
因此,我的问题是:
- 是否有办法在我的情况下使用.NET ThreadPool?
- 如果没有,哪些好的(最好是免费的)ThreadPool实现可以使用?(.NET Framework 4和Windows Azure兼容)