Actually it does not mean that you have to eat up CPU cycles in a delay loop... is just means that there is code in there that is causing a significant delay between iterations, most likely from a sleep command which forces the proecessor to not do anything for a specified period of time in milliseconds.
for(;; )
{
...execute some code...
Sleep( 100 );
}
is a good example of a delay loop. Delay loops are very commonly used in multi-threading and server-client applications, as well as many other applications. Sometimes you can have a process trying to pol for input from a network socket or a local device, the problem is your processor will run a polling loop as fast as it can unless you forece it to slow down... you do this with sleep.
On another interesting not... Sleep( 0 ) is usually a valid statement, and it does not execute a CPU wait for 0 milliseconds, what this usually does is it instructs the operating system to end the timeslice for the process that is running and execute other timeslices for other processes and threads before returning, this is typically a very effective way of managing the polling loop issue.