Depende de lo que quieras hacer dentro de este ciclo.
Si está esperando dentro del bucle (es decir, si presiona el botón {hacer algo}, su mecanismo desperdiciará los recursos del sistema sin dar nada a cambio. Un procesador más rápido solo hará más bucles. Esto se puede resolver esperando eventos No simplemente duerma, pero preferiblemente es un evento que desencadena que se pueda hacer algo significativo. Por ejemplo, una operación de archivo (stdin también es un archivo) sería un mecanismo portátil. Esto dará paso a otras aplicaciones hasta que los datos estén disponibles. más específica que puede ser necesario para sumergirse en los semáforos o señales que son a menudo depende del sistema operativo. una capa de abstracción puede resolver esto.
Si usted está haciendo algo útil (es decir, el procesamiento de una gran cantidad de datos), entonces el 100% de la carga de la CPU solo significa que el procesador es nosotros ed de la manera más eficiente. Puede confiar en el sistema operativo para dar paso a otras tareas y posiblemente de mayor prioridad.
El uso de una función como sleep reducirá el uso de la CPU, pero su aplicación será más lenta. Requerirá una compensación entre el rendimiento aceptable y la carga de la CPU. La velocidad máxima de ejecución estará definida por su parámetro de suspensión, y no por la velocidad de la CPU. Además, si la potencia es una preocupación (es decir, el tiempo de vida útil de la batería), entonces esto requerirá que la CPU se active (final del período de reposo) sin que haya que trabajar; es decir, un desperdicio diferente de los recursos del sistema.
Debe utilizar un objeto de sincronización, uno que se puede esperar hasta que se convierte en una señal, de esa manera no se consumen CPU en absoluto. –
¿Qué es 'DONE' y qué causará que sea distinto de cero? Presumiblemente, tiene sentido continuar procesando hasta que el 'verificar cosas' evalúe algo que establece que DONE no sea cero. –
Lasse V. Karlsen: Su solución parece tener sentido (probablemente tenga mucho sentido, pero no tengo ese conocimiento). ¿Podrías por favor elaborar? ¿Debo investigar los hilos? (un ejemplo sería bueno) Charles Bailey: DONE debería ser un int (hecho en lugar de DONE) y se establecería en 1 cuando el usuario optó por salir de la aplicación, por ejemplo. Lo siento si no puedo explicarme lo suficientemente bien ... – pwseo