Search code examples
c#.netmultithreadingparallel-processingtask-parallel-library

Tasks vs ThreadPool


I have an application in C# with a list of work to do. I'm looking to do as much of that work as possible in parallel. However I need to be able to control the maximum amount of parallel tasks.

From what I understand this is possible with a ThreadPool or with Tasks. Is there an difference in which one I use? My main concern is being able to control how many threads are active at one time.


Solution

  • Please take a look at ParallelOptions.MaxDegreeOfParallelism for Tasks.

    I would advise you to use Tasks, because they provide a higher level abstraction than the ThreadPool.

    A very good read on the topic can be found here. Really, a must-have book and it's free on top of that :)