Solution
It took me about 2 weeks to investigate this thoroughly using Visual Studio profiler and thread visualization tools, but in the end, it was just a question of starting the debugger and finding out things about the implementation. Fortunately, I had the source code of the framework and libraries it used.
The framework in question used Windows Concurrency Runtime, which at the time was the native, task-based implementation of Windows' Parallel Patterns Library (PPL). Do you remember task-based parallelism from Chapter 5, An In-depth Guide to Concurrency and Multithreading? It turned out that the Concurrency Runtime was left with an ever-growing internal list, which was sequentially scanned with each tick of the scheduler. This, of ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access