Si, funcionaria sleep, pero le tenes que dar un tiempo, si no hay otra tarea igual cumple con el tiempo y te hace la ejecucion mas lenta, deberia haber algo similar al DoEvents de Visual Basic, que libera la ejecucion a criterio del sistema operativo y luego vuelve al programa de forma mas equitativa, si no hay otras tareas vuelve inmediatamente, sin esperas, y si las hay, igual cada tanto vuelve.
Gracias.