I have a program that uses multiple threads that are started with AfxBeginThread. On a low end systems (Duo Core2, 5 GB Ram) I have on thread, that even if it is set up as a somple a thread as can be:

while(true)
{
Sleep(500);
}

The CPU Usage goes to 100% and stays there.
If I fill out the code to process my data, it goes to 100%.

If I run on a powerful system (Core i7, quad core, 28GB Ram) there is no problem.

I can find nothing that says what the can cause this. The memory used across either platform stays even the entire time the thread is running. For example, if the memory used is 5.7GB on my big system or 2.8 on the small one, it that is the level it stays at, NO FLUCTUATIONS. No memory leaks. I also have run this in debug (Visual Studio 2013 w/DeLeaker) and no memory leaks.

Finally, the only solution I have been able to come up with is to stop and start the thread if the CPU% gets over 80%. this works and keeps the thread from pegging at 100% and staying there. But that doesn't seem a good solution.

Anybody have any idea what could be causing this?