CPU throttling in C++ | I was just wondering if there is an elegant way to set the maximum CPU load for a particular thread doing intensive calculations.


Right now I have located the most time-consuming loop in the thread (it does only compression) and use `GetTickCount()` and `Sleep()` with hardcoded values. It makes sure that the loop continues for a certain period and then sleeps for a certain minimum time. It more or less does the job, i.e. guarantees that the thread will not use more than 50% of CPU.


However, behavior is dependent on the number of CPU cores (huge disadvantage) and simply ugly (smaller disadvantage).


Any ideas?