我曾经很好地利用了Java的ThreadPoolExecutor类,并且还没有在C#中找到一个好的等价物。我知道ThreadPool.QueueUserWorkItem在许多情况下很有用,但是如果你想控制分配给任务的线程数或者为不同的任务类型有多个单独的队列,那就不好了。
例如,我喜欢使用带有单个线程的ThreadPoolExecutor来保证异步调用的顺序执行。在C#中有一种简单的方法吗?是否存在非静态线程池实现?
答案 0 :(得分:2)
直到.Net 4.0和TPL,内置没有这样的功能。
但是,请参阅this artcle
答案 1 :(得分:0)
作为Reactive Extensions(Rx)的一部分,任务并行库被反向移植到.NET 3.5。如果添加对System.Threading.dll的引用(包括其分发版),则可以将TPL与.NET 3.5一起使用。
并发和协调运行时内置了一些线程池,可以免费使用。请参阅此MSDN article以供使用。