In the Visual Studio 2019 documentation it is stated in section "Task Scheduler (Concurrency Runtime)" that as of 2015 the concurrency::task class and related types in ppltasks.h use the Windows ThreadPool as their scheduler while algorithms like parallel_for still use the Concurrency Runtime as default scheduler. I have tried to reaseach the differences, but just can't find a clear answer. So here are my questions: What are the differences between the both scheduler in the way they work and/or how do they relate to each other? Do they have different scheduling policies and do both implement the work-stealing pattern?