Hola,
Cita:
Iniciado por lareto ... Y no sé si es lo mejor que puede hacerse, pero seguramente no es lo peor; al menos yo puedo pensar en cosas peores sin mucho esfuerzo.
Ciertamente, también por eso escribí "...no se a que te refieres exactamente con while(true)...", es decir, allí cambia la cosa, pasaste el GetMessage dentro del ciclo.
Cita:
Iniciado por razpeitia Claro que no, pero la suma de porcentaje de CPU, si daría 100% lo cual es correcto.
Porque crees que existe un
proceso inactivo del sistema ocupando tanto cpu.
Exactamente, básicamente era una aclaración sobre lo que habías escrito.
Resumiendo, es cierto que un ciclo infinito, pero lo que sucede dentro de ese ciclo infinito es lo importante. A lo que me refería principalmente, es que según lo que comenta shekel, su proceso consume 99% de CPU.
Es decir, lo que está haciendo es seguramente,
Código C:
Ver originalvoid IntentarLeerDispositivo() {
// intentar leer si el dispositivo está conectado.
}
while(true) {
IntentarLeerDispositivo();
}
Eso es pésimo para el sistema operativo, si fuera una aplicación de 16 bits, en Windows 3.1 votaría completamente el OS, posiblemente tenías que apagar la PC con reset. Ahora, con 32 y 64 bits y múltiples Cores, ya no es tan visible el problema, te da tiempo de entrar al Task Manager y detener el proceso.
Ahora, lo que hace GetMessage() es bastante complejo, normalmente dentro de un ciclo infinito, pero no es un simple while(true) común y silvestre, a eso me refería básicamente, sin el GetMessage de por medio es lo peor que puedes hacer.
Saludos,