I'm writing a program that copies the bitmap of the desktop (like a screenshot), calculates the average RGB value of the screen, and send it over USB. Everything is working and I manage to get 30+ loops per second, which is good enough. However, after some time (varying between ~20 sec and ~1 min 30 sec), and not doing anything else, the loops per second suddenly drop to about 10 loops per second, which is too slow for my purpose. This transition happens within a fraction of a second. When I watch the Task Manager, and don't see anything special happening. The CPU time for my process remains the same, the total CPU usage is quite stable, memory usage is stable as well. I've tried changing Thread priority and Process priority but nothing seems to work. I am at a loss here. Anyone has any ideas? I would greatly appreciate any suggestions, advice and thoughts.