There is very little “extra performance” that you can squeeze out of a machine, in particular a mobile device, by introducing more streams.
Like my comment on this post you linked says (since February 2012), as well as the first paragraph in the article you linked explains the reason.
The difference between GCD and ThreadPool is that ThreadPool in Mono has a "slow start" setting so that it does not create more threads than necessary in the presence of work peaks. You can easily starve off the processor by starting too many threads, so threadpool throttles itself after creating the initial threads, and then tries to create only a new thread every second (give or take, I do not remember the actual data).
If you want to force ThreadPool to actually deploy many threads, you can control this with ThreadPool.SetMinThreads.
The reason for using ThreadPool is that the same code will work on all platforms.
Note that the document talks about using ThreadPool on top of other standard .NET APIs for streaming and says nothing about using GCD or not. It is just that threadpool is a better choice than using Threads' own control.
So the API, these days, I recommend that people use a parallel task library (TPL), which represents a much higher level of understanding of your background operations than a thread. In addition, you get the same API through the platform with the flexibility of using either the built-in stream or sending to the GCD by switching a single line of code.
source share